about summary refs log blame commit diff stats
path: root/ntcoin
blob: 051fd9ce913a0f6a73524dc8cb2a5bc29acabc9d (plain) (tree)
1
2
3
4
5
6
7
8

           
                                                           

                    

                                                                                                                                                                                                           
                                                           












                                                                                      
                                                                   
                                                               
                                                                        

                                                                    
    
                                             
      
                                                                        

          

                                                    
                                                    
    
                                                   
      
                                                                              

          

                                                          
                                                          
    
                                                       
      
                                                                                  

          

                                                              
                                                              
    
                                                                
      
                                                                                           

          

                                                                       
                                                                       
    
                                                      
      
                                                                                 

          

                                                             
                                                             
    
                                                  
      
                                                                             

          

                                                         
                                                         
                                                             
        
                                                                                        

            
                                                                          
                                                                    

      
                                                     
      
                                                                                

          

                                                            
                                                            
                                                                  
        
                                                                                             

            

                                                                         
      
                                                                   
        
                                                                                              

            

                                                                                                                                                                                                                                           

      
                                                   
      
                                                                            

          

                                                        
                                                        
                                                          
        
                                                                                     

            

                                                                   
      
                                                         
        
                                                                                    


                            

                                                                                                   




                                                                                                              
                                                                        
                            



                                                                                                                                                                       
      
                                                         
        
                                                                                    


                            

                                                                                                   




                                                                                                              
                                                                        
                            



                                                                                                                                                                       


                                                                         






                                                                                      
                                              

                                                                                
                                                                   
                                                               
                                                                        

                                                                    
  
#!/bin/bash

if [ "$#" -eq 0 ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]
then
  /bin/echo "Usage:"
  /bin/echo "  ntcoin <path (no slash)> <bin path (no slash)> <n> : to create tcoin subdirectories in <path (no slash)> with the executable saved to <bin path (no slash)> and with <n> basecoins per user"
  /bin/echo "  ntcoin <path (no slash)> <bin path (no slash)> [ --def | -d ]: to print only the #define preprocessor directives without creating any directories"
  /bin/echo "  ntcoin [ --help | -h ] : to print this help"
elif [ "$2" = "--def" ] || [ "$2" = "-d" ]
then
  /bin/echo "Printing tcoin.cpp (and pcoin.cpp) preprocessor directives."
  /bin/echo "Paste the following after the #includes inside tcoin.cpp (and pcoin.cpp):
"
  /bin/echo '#define TCOIN_PATH "'`/usr/bin/realpath -s $1`'/tcoin"
#define TCOIN_MSG_PATH "'`/usr/bin/realpath -s $1`'/tcoin/messages/"
#define TCOIN_SALT_PATH "'`/usr/bin/realpath -s $1`'/tcoin/salts/"
#define TCOIN_PASS_PATH "'`/usr/bin/realpath -s $1`'/tcoin/passwords/"
#define TCOIN_PROG_ACT_PATH "'`/usr/bin/realpath -s $1`'/tcoin/program_accounting/"
#define PROG_ACT_W_SLASH "program_accounting/"
#define PCOIN_KEY_PATH "'`/usr/bin/realpath -s $1`'/tcoin/secrets/pcoin_keys"
#define TCOIN_CODEZ_PATH "'`/usr/bin/realpath -s $1`'/tcoin/secrets/tcoin_codez"
#define TCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $2`'/tcoin "
#define TCOIN_PATH_W_SLASH "'`/usr/bin/realpath -s $1`'/tcoin/"
#define TCOIN_SCRYPT_PATH "'`/usr/bin/realpath -s $1`'/tcoin/bin/scrypt"
#define PCOIN_BIN_PATH "'`/usr/bin/realpath -s $2`'/pcoin"
#define PCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $2`'/pcoin "'
else
  if [ -d "`/usr/bin/realpath -s $1`/tcoin" ]
  then
    /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin' already exists."
    exit 1
  else
    /bin/mkdir "`/usr/bin/realpath -s $1`/tcoin"
    /bin/chmod 700 "`/usr/bin/realpath -s $1`/tcoin"
    /bin/chmod u+s "`/usr/bin/realpath -s $1`/tcoin"
  fi
  if [ -d "`/usr/bin/realpath -s $1`/tcoin/salts" ]
  then
    /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/salts' already exists."
    exit 1
  else
    /bin/mkdir "`/usr/bin/realpath -s $1`/tcoin/salts"
    /bin/chmod 700 "`/usr/bin/realpath -s $1`/tcoin/salts"
    /bin/chmod u+s "`/usr/bin/realpath -s $1`/tcoin/salts"
  fi
  if [ -d "`/usr/bin/realpath -s $1`/tcoin/passwords" ]
  then
    /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/passwords' already exists."
    exit 1
  else
    /bin/mkdir "`/usr/bin/realpath -s $1`/tcoin/passwords"
    /bin/chmod 700 "`/usr/bin/realpath -s $1`/tcoin/passwords"
    /bin/chmod u+s "`/usr/bin/realpath -s $1`/tcoin/passwords"
  fi
  if [ -d "`/usr/bin/realpath -s $1`/tcoin/program_accounting" ]
  then
    /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/program_accounting' already exists."
    exit 1
  else
    /bin/mkdir "`/usr/bin/realpath -s $1`/tcoin/program_accounting"
    /bin/chmod 700 "`/usr/bin/realpath -s $1`/tcoin/program_accounting"
    /bin/chmod u+s "`/usr/bin/realpath -s $1`/tcoin/program_accounting"
  fi
  if [ -d "`/usr/bin/realpath -s $1`/tcoin/messages" ]
  then
    /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/messages' already exists."
    exit 1
  else
    /bin/mkdir "`/usr/bin/realpath -s $1`/tcoin/messages"
    /bin/chmod 700 "`/usr/bin/realpath -s $1`/tcoin/messages"
    /bin/chmod u+s "`/usr/bin/realpath -s $1`/tcoin/messages"
  fi
  if [ -d "`/usr/bin/realpath -s $1`/tcoin/base" ]
  then
    /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/base' already exists."
    exit 1
  else
    /bin/mkdir "`/usr/bin/realpath -s $1`/tcoin/base"
    /bin/chmod 700 "`/usr/bin/realpath -s $1`/tcoin/base"
    /bin/chmod u+s "`/usr/bin/realpath -s $1`/tcoin/base"
    if [ -e "`/usr/bin/realpath -s $1`/tcoin/base/base.txt" ]
    then
      /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/base/base.txt' already exists."
      exit 1
    else
      /bin/echo "$3""00" > "`/usr/bin/realpath -s $1`/tcoin/base/base.txt"
      /bin/chmod 600 "`/usr/bin/realpath -s $1`/tcoin/base/base.txt"
    fi
  fi
  if [ -d "`/usr/bin/realpath -s $1`/tcoin/secrets" ]
  then
    /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/secrets' already exists."
    exit 1
  else
    /bin/mkdir "`/usr/bin/realpath -s $1`/tcoin/secrets"
    /bin/chmod 700 "`/usr/bin/realpath -s $1`/tcoin/secrets"
    /bin/chmod u+s "`/usr/bin/realpath -s $1`/tcoin/secrets"
    if [ -e "`/usr/bin/realpath -s $1`/tcoin/secrets/pcoin_keys" ]
    then
      /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/secrets/pcoin_keys' already exists."
      exit 1
    else
      /bin/echo "" > "`/usr/bin/realpath -s $1`/tcoin/secrets/pcoin_keys"
      /bin/chmod 400 "`/usr/bin/realpath -s $1`/tcoin/secrets/pcoin_keys"
    fi
    if [ -e "`/usr/bin/realpath -s $1`/tcoin/secrets/tcoin_codez" ]
    then
      /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/secrets/tcoin_codez' already exists."
      exit 1
    else
      /bin/echo "`cat /dev/urandom | base64 | head -c 512 | tr -d '\n' | tr '+' '-' | tr '/' '_'` `cat /dev/urandom | base64 | head -c 512 | tr -d '\n' | tr '+' '-' | tr '/' '_'`" > "`/usr/bin/realpath -s $1`/tcoin/secrets/tcoin_codez"
      /bin/chmod 400 "`/usr/bin/realpath -s $1`/tcoin/secrets/tcoin_codez"
    fi
  fi
    if [ -d "`/usr/bin/realpath -s $1`/tcoin/bin" ]
  then
    /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/bin' already exists."
    exit 1
  else
    /bin/mkdir "`/usr/bin/realpath -s $1`/tcoin/bin"
    /bin/chmod 700 "`/usr/bin/realpath -s $1`/tcoin/bin"
    /bin/chmod u+s "`/usr/bin/realpath -s $1`/tcoin/bin"
    if [ -e "`/usr/bin/realpath -s $1`/tcoin/bin/scrypt" ]
    then
      /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/bin/scrypt' already exists."
      exit 1
    else
      /bin/cp ./scrypt "`/usr/bin/realpath -s $1`/tcoin/bin/scrypt"
      /bin/chmod 500 "`/usr/bin/realpath -s $1`/tcoin/bin/scrypt"
    fi
    if [ -e "`/usr/bin/realpath -s $1`/tcoin/bin/tcoin" ]
    then
      /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/bin/tcoin' already exists."
      exit 1
    else
      /bin/echo '#!/bin/bash
(/usr/bin/g++ '`/bin/pwd`'/tcoin.cpp -o "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin" -std=c++11) \
&& (/bin/chmod 550 "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin") \
&& (/bin/chmod u+s "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin") \
&& (/bin/chmod u+w "'`/usr/bin/realpath -s $2`'/tcoin") \
&& (/bin/cp "'`/usr/bin/realpath -s $1`'/tcoin/bin/tcoin" "'`/usr/bin/realpath -s $2`'/tcoin") \
&& (/bin/chmod 550 "'`/usr/bin/realpath -s $2`'/tcoin") \
&& (/bin/chmod u+s "'`/usr/bin/realpath -s $2`'/tcoin")' > "`/usr/bin/realpath -s $1`/tcoin/bin/compile_tcoin"
      /bin/chmod 540 "`/usr/bin/realpath -s $1`/tcoin/bin/compile_tcoin"
      /bin/echo '#!/bin/bash
/bin/nano '`/bin/pwd`'/tcoin.cpp' > "`/usr/bin/realpath -s $1`/tcoin/bin/edit_tcoin"
      /bin/chmod 540 "`/usr/bin/realpath -s $1`/tcoin/bin/edit_tcoin"
      /bin/bash "`/usr/bin/realpath -s $1`/tcoin/bin/compile_tcoin"
      /bin/ln -s "`/usr/bin/realpath -s $1`/tcoin/bin/tcoin" "`/usr/bin/realpath -s $1`/tcoin/bin/compile_tcoin" "`/usr/bin/realpath -s $1`/tcoin/bin/edit_tcoin" ~/bin
    fi
    if [ -e "`/usr/bin/realpath -s $1`/tcoin/bin/pcoin" ]
    then
      /bin/echo "Sorry, '`/usr/bin/realpath -s $1`/tcoin/bin/pcoin' already exists."
      exit 1
    else
      /bin/echo '#!/bin/bash
(/usr/bin/g++ '`/bin/pwd`'/pcoin.cpp -o "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin" -std=c++11) \
&& (/bin/chmod 550 "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin") \
&& (/bin/chmod u+s "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin")
&& (/bin/chmod u+w "'`/usr/bin/realpath -s $2`'/pcoin") \
&& (/bin/cp "'`/usr/bin/realpath -s $1`'/tcoin/bin/pcoin" "'`/usr/bin/realpath -s $2`'/pcoin") \
&& (/bin/chmod 550 "'`/usr/bin/realpath -s $2`'/pcoin") \
&& (/bin/chmod u+s "'`/usr/bin/realpath -s $2`'/pcoin")' > "`/usr/bin/realpath -s $1`/tcoin/bin/compile_pcoin"
      /bin/chmod 540 "`/usr/bin/realpath -s $1`/tcoin/bin/compile_pcoin"
      /bin/echo '#!/bin/bash
/bin/nano '`/bin/pwd`'/pcoin.cpp' > "`/usr/bin/realpath -s $1`/tcoin/bin/edit_pcoin"
      /bin/chmod 540 "`/usr/bin/realpath -s $1`/tcoin/bin/edit_pcoin"
      /bin/bash "`/usr/bin/realpath -s $1`/tcoin/bin/compile_pcoin"
      /bin/ln -s "`/usr/bin/realpath -s $1`/tcoin/bin/pcoin" "`/usr/bin/realpath -s $1`/tcoin/bin/compile_pcoin" "`/usr/bin/realpath -s $1`/tcoin/bin/edit_pcoin" ~/bin
    fi
  fi
  /bin/echo "Printing tcoin.cpp (and pcoin.cpp) preprocessor directives."
  /bin/echo "Paste the following after the #includes inside tcoin.cpp (and pcoin.cpp):
"
  /bin/echo '#define TCOIN_PATH "'`/usr/bin/realpath -s $1`'/tcoin"
#define TCOIN_MSG_PATH "'`/usr/bin/realpath -s $1`'/tcoin/messages/"
#define TCOIN_SALT_PATH "'`/usr/bin/realpath -s $1`'/tcoin/salts/"
#define TCOIN_PASS_PATH "'`/usr/bin/realpath -s $1`'/tcoin/passwords/"
#define TCOIN_PROG_ACT_PATH "'`/usr/bin/realpath -s $1`'/tcoin/program_accounting/"
#define PROG_ACT_W_SLASH "program_accounting/"
#define PCOIN_KEY_PATH "'`/usr/bin/realpath -s $1`'/tcoin/secrets/pcoin_keys"
#define TCOIN_CODEZ_PATH "'`/usr/bin/realpath -s $1`'/tcoin/secrets/tcoin_codez"
#define TCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $2`'/tcoin "
#define TCOIN_PATH_W_SLASH "'`/usr/bin/realpath -s $1`'/tcoin/"
#define TCOIN_SCRYPT_PATH "'`/usr/bin/realpath -s $1`'/tcoin/bin/scrypt"
#define PCOIN_BIN_PATH "'`/usr/bin/realpath -s $2`'/pcoin"
#define PCOIN_BIN_PATH_W_SPACE "'`/usr/bin/realpath -s $2`'/pcoin "'
fi