|  | @@ -35,6 +35,7 @@ SHOW_ON_ABOUT=1
 | 
	
		
			
			| 35 | 35 |  
 | 
	
		
			
			| 36 | 36 |  BDSMAIL_REPO="https://github.com/majestrate/bdsmail"
 | 
	
		
			
			| 37 | 37 |  BDSMAIL_COMMIT='6a2296b0b8e6c3da61081b85802e7b1cc88ca285'
 | 
	
		
			
			|  | 38 | +BDSMAIL_DIR=/bdsmail
 | 
	
		
			
			| 38 | 39 |  
 | 
	
		
			
			| 39 | 40 |  bdsmail=(MY_USERNAME)
 | 
	
		
			
			| 40 | 41 |  
 | 
	
	
		
			
			|  | @@ -120,14 +121,14 @@ function upgrade_bdsmail {
 | 
	
		
			
			| 120 | 121 |      fi
 | 
	
		
			
			| 121 | 122 |  
 | 
	
		
			
			| 122 | 123 |      # update to the next commit
 | 
	
		
			
			| 123 |  | -    set_repo_commit /etc/bdsmail "bdsmail commit" "$BDSMAIL_COMMIT" $BDSMAIL_REPO
 | 
	
		
			
			| 124 |  | -    chown -R i2psvc:i2psvc /etc/bdsmail
 | 
	
		
			
			|  | 124 | +    set_repo_commit $BDSMAIL_DIR "bdsmail commit" "$BDSMAIL_COMMIT" $BDSMAIL_REPO
 | 
	
		
			
			|  | 125 | +    chown -R i2psvc:i2psvc $BDSMAIL_DIR
 | 
	
		
			
			| 125 | 126 |  }
 | 
	
		
			
			| 126 | 127 |  
 | 
	
		
			
			| 127 | 128 |  function backup_local_bdsmail {
 | 
	
		
			
			| 128 | 129 |      systemctl stop bdsmail
 | 
	
		
			
			| 129 | 130 |  
 | 
	
		
			
			| 130 |  | -    source_directory=/etc/bdsmail
 | 
	
		
			
			|  | 131 | +    source_directory=$BDSMAIL_DIR
 | 
	
		
			
			| 131 | 132 |  
 | 
	
		
			
			| 132 | 133 |      function_check backup_directory_to_usb
 | 
	
		
			
			| 133 | 134 |      dest_directory=bdsmail
 | 
	
	
		
			
			|  | @@ -140,7 +141,7 @@ function restore_local_bdsmail {
 | 
	
		
			
			| 140 | 141 |      systemctl stop bdsmail
 | 
	
		
			
			| 141 | 142 |  
 | 
	
		
			
			| 142 | 143 |      temp_restore_dir=/root/tempbdsmail
 | 
	
		
			
			| 143 |  | -    bdsmail_dir=/etc/bdsmail
 | 
	
		
			
			|  | 144 | +    bdsmail_dir=$BDSMAIL_DIR
 | 
	
		
			
			| 144 | 145 |  
 | 
	
		
			
			| 145 | 146 |      function_check restore_directory_from_usb
 | 
	
		
			
			| 146 | 147 |      restore_directory_from_usb $temp_restore_dir bdsmail
 | 
	
	
		
			
			|  | @@ -163,7 +164,7 @@ function restore_local_bdsmail {
 | 
	
		
			
			| 163 | 164 |  function backup_remote_bdsmail {
 | 
	
		
			
			| 164 | 165 |      systemctl stop bdsmail
 | 
	
		
			
			| 165 | 166 |  
 | 
	
		
			
			| 166 |  | -    source_directory=/etc/bdsmail
 | 
	
		
			
			|  | 167 | +    source_directory=$BDSMAIL_DIR
 | 
	
		
			
			| 167 | 168 |  
 | 
	
		
			
			| 168 | 169 |      function_check backup_directory_to_friend
 | 
	
		
			
			| 169 | 170 |      dest_directory=bdsmail
 | 
	
	
		
			
			|  | @@ -176,7 +177,7 @@ function restore_remote_bdsmail {
 | 
	
		
			
			| 176 | 177 |      systemctl stop bdsmail
 | 
	
		
			
			| 177 | 178 |  
 | 
	
		
			
			| 178 | 179 |      temp_restore_dir=/root/tempbdsmail
 | 
	
		
			
			| 179 |  | -    bdsmail_dir=/etc/bdsmail
 | 
	
		
			
			|  | 180 | +    bdsmail_dir=$BDSMAIL_DIR
 | 
	
		
			
			| 180 | 181 |  
 | 
	
		
			
			| 181 | 182 |      function_check restore_directory_from_friend
 | 
	
		
			
			| 182 | 183 |      restore_directory_from_friend $temp_restore_dir bdsmail
 | 
	
	
		
			
			|  | @@ -234,36 +235,36 @@ function remove_bdsmail {
 | 
	
		
			
			| 234 | 235 |      remove_completion_param install_bdsmail
 | 
	
		
			
			| 235 | 236 |      sed -i '/bdsmail/d' $COMPLETION_FILE
 | 
	
		
			
			| 236 | 237 |      rm -rf /etc/skel/.mutt
 | 
	
		
			
			| 237 |  | -    if [ -d /etc/bdsmail ]; then
 | 
	
		
			
			| 238 |  | -        rm -rf /etc/bdsmail
 | 
	
		
			
			|  | 238 | +    if [ -d $BDSMAIL_DIR ]; then
 | 
	
		
			
			|  | 239 | +        rm -rf $BDSMAIL_DIR
 | 
	
		
			
			| 239 | 240 |      fi
 | 
	
		
			
			| 240 | 241 |  }
 | 
	
		
			
			| 241 | 242 |  
 | 
	
		
			
			| 242 | 243 |  function install_bdsmail {
 | 
	
		
			
			| 243 |  | -    if [ -d /etc/bdsmail ]; then
 | 
	
		
			
			|  | 244 | +    if [ -d $BDSMAIL_DIR ]; then
 | 
	
		
			
			| 244 | 245 |          remove_bdsmail
 | 
	
		
			
			| 245 | 246 |      fi
 | 
	
		
			
			| 246 | 247 |  
 | 
	
		
			
			| 247 | 248 |      if [ -d /repos/bdsmail ]; then
 | 
	
		
			
			| 248 |  | -        mkdir /etc/bdsmail
 | 
	
		
			
			| 249 |  | -        cp -r -p /repos/bdsmail/. /etc/bdsmail
 | 
	
		
			
			| 250 |  | -        cd /etc/bdsmail
 | 
	
		
			
			|  | 249 | +        mkdir $BDSMAIL_DIR
 | 
	
		
			
			|  | 250 | +        cp -r -p /repos/bdsmail/. $BDSMAIL_DIR
 | 
	
		
			
			|  | 251 | +        cd $BDSMAIL_DIR
 | 
	
		
			
			| 251 | 252 |          git pull
 | 
	
		
			
			| 252 | 253 |      else
 | 
	
		
			
			| 253 |  | -        git_clone $BDSMAIL_REPO /etc/bdsmail
 | 
	
		
			
			|  | 254 | +        git_clone $BDSMAIL_REPO $BDSMAIL_DIR
 | 
	
		
			
			| 254 | 255 |      fi
 | 
	
		
			
			| 255 | 256 |  
 | 
	
		
			
			| 256 |  | -    if [ ! -d /etc/bdsmail ]; then
 | 
	
		
			
			|  | 257 | +    if [ ! -d $BDSMAIL_DIR ]; then
 | 
	
		
			
			| 257 | 258 |          echo $'Unable to clone bdsmail repo'
 | 
	
		
			
			| 258 | 259 |          exit 5735735
 | 
	
		
			
			| 259 | 260 |      fi
 | 
	
		
			
			| 260 | 261 |  
 | 
	
		
			
			| 261 |  | -    cd /etc/bdsmail
 | 
	
		
			
			|  | 262 | +    cd $BDSMAIL_DIR
 | 
	
		
			
			| 262 | 263 |      git checkout $BDSMAIL_COMMIT -b $BDSMAIL_COMMIT
 | 
	
		
			
			| 263 | 264 |      set_completion_param "bdsmail commit" "$BDSMAIL_COMMIT"
 | 
	
		
			
			| 264 | 265 |  
 | 
	
		
			
			| 265 | 266 |      make GOROOT=/home/go/go${GO_VERSION}
 | 
	
		
			
			| 266 |  | -    if [ ! -f /etc/bdsmail/bin/bdsconfig ]; then
 | 
	
		
			
			|  | 267 | +    if [ ! -f $BDSMAIL_DIR/bin/bdsconfig ]; then
 | 
	
		
			
			| 267 | 268 |          echo $'Unable to make bdsmail'
 | 
	
		
			
			| 268 | 269 |          exit 87923567842
 | 
	
		
			
			| 269 | 270 |      fi
 | 
	
	
		
			
			|  | @@ -272,16 +273,16 @@ function install_bdsmail {
 | 
	
		
			
			| 272 | 273 |      i2p_enable_sam
 | 
	
		
			
			| 273 | 274 |  
 | 
	
		
			
			| 274 | 275 |      # create configuration file
 | 
	
		
			
			| 275 |  | -    /etc/bdsmail/bin/bdsconfig > /etc/bdsmail/config.ini
 | 
	
		
			
			| 276 |  | -    echo '[maild]' > /etc/bdsmail/config.ini
 | 
	
		
			
			| 277 |  | -    echo 'i2paddr = 127.0.0.1:7656' >> /etc/bdsmail/config.ini
 | 
	
		
			
			| 278 |  | -    echo 'i2pkeyfile = bdsmail-privkey.dat' >> /etc/bdsmail/config.ini
 | 
	
		
			
			| 279 |  | -    echo 'bindmail = 127.0.0.1:2525' >> /etc/bdsmail/config.ini
 | 
	
		
			
			| 280 |  | -    echo 'bindweb = 127.0.0.1:8489' >> /etc/bdsmail/config.ini
 | 
	
		
			
			| 281 |  | -    echo 'domain = localhost' >> /etc/bdsmail/config.ini
 | 
	
		
			
			| 282 |  | -    echo 'maildir = mail' >> /etc/bdsmail/config.ini
 | 
	
		
			
			| 283 |  | -    echo 'database = localhost.sqlite' >> /etc/bdsmail/config.ini
 | 
	
		
			
			| 284 |  | -    echo 'assets = contrib/assets/web' >> /etc/bdsmail/config.ini
 | 
	
		
			
			|  | 276 | +    $BDSMAIL_DIR/bin/bdsconfig > $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 277 | +    echo '[maild]' > $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 278 | +    echo 'i2paddr = 127.0.0.1:7656' >> $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 279 | +    echo 'i2pkeyfile = bdsmail-privkey.dat' >> $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 280 | +    echo 'bindmail = 127.0.0.1:2525' >> $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 281 | +    echo 'bindweb = 127.0.0.1:8489' >> $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 282 | +    echo 'domain = localhost' >> $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 283 | +    echo 'maildir = mail' >> $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 284 | +    echo 'database = localhost.sqlite' >> $BDSMAIL_DIR/config.ini
 | 
	
		
			
			|  | 285 | +    echo 'assets = contrib/assets/web' >> $BDSMAIL_DIR/config.ini
 | 
	
		
			
			| 285 | 286 |  
 | 
	
		
			
			| 286 | 287 |      echo '[Unit]' > /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 287 | 288 |      echo 'Description=bdsmail' >> /etc/systemd/system/bdsmail.service
 | 
	
	
		
			
			|  | @@ -292,26 +293,26 @@ function install_bdsmail {
 | 
	
		
			
			| 292 | 293 |      echo 'Type=simple' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 293 | 294 |      echo 'User=i2psvc' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 294 | 295 |      echo 'Group=i2psvc' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 295 |  | -    echo 'WorkingDirectory=/etc/bdsmail' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 296 |  | -    echo 'ExecStart=/etc/bdsmail/bin/maild /etc/bdsmail/config.ini' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			|  | 296 | +    echo "WorkingDirectory=$BDSMAIL_DIR" >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			|  | 297 | +    echo "ExecStart=$BDSMAIL_DIR/bin/maild $BDSMAIL_DIR/config.ini" >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 297 | 298 |      echo 'Restart=always' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 298 | 299 |      echo 'Environment="USER=i2psvc"' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 299 | 300 |      echo '' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 300 | 301 |      echo '[Install]' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 301 | 302 |      echo 'WantedBy=multi-user.target' >> /etc/systemd/system/bdsmail.service
 | 
	
		
			
			| 302 | 303 |  
 | 
	
		
			
			| 303 |  | -    echo '#!/usr/bin/env python2' > /etc/bdsmail/get_address
 | 
	
		
			
			| 304 |  | -    echo 'import base64, hashlib, sys' >> /etc/bdsmail/get_address
 | 
	
		
			
			| 305 |  | -    echo 'with open(sys.argv[1]) as f:' >> /etc/bdsmail/get_address
 | 
	
		
			
			| 306 |  | -    echo "    print(base64.b32encode(hashlib.sha256(base64.b64decode(f.read(516), '-~')).digest()).strip('=')+\".b32.i2p\")" >> /etc/bdsmail/get_address
 | 
	
		
			
			| 307 |  | -    chmod +x /etc/bdsmail/get_address
 | 
	
		
			
			|  | 304 | +    echo '#!/usr/bin/env python2' > $BDSMAIL_DIR/get_address
 | 
	
		
			
			|  | 305 | +    echo 'import base64, hashlib, sys' >> $BDSMAIL_DIR/get_address
 | 
	
		
			
			|  | 306 | +    echo 'with open(sys.argv[1]) as f:' >> $BDSMAIL_DIR/get_address
 | 
	
		
			
			|  | 307 | +    echo "    print(base64.b32encode(hashlib.sha256(base64.b64decode(f.read(516), '-~')).digest()).strip('=')+\".b32.i2p\")" >> $BDSMAIL_DIR/get_address
 | 
	
		
			
			|  | 308 | +    chmod +x $BDSMAIL_DIR/get_address
 | 
	
		
			
			| 308 | 309 |  
 | 
	
		
			
			| 309 |  | -    chown -R i2psvc:i2psvc /etc/bdsmail
 | 
	
		
			
			|  | 310 | +    chown -R i2psvc:i2psvc $BDSMAIL_DIR
 | 
	
		
			
			| 310 | 311 |      systemctl enable bdsmail
 | 
	
		
			
			| 311 | 312 |      systemctl start bdsmail
 | 
	
		
			
			| 312 | 313 |  
 | 
	
		
			
			| 313 | 314 |      echo '#!/bin/bash' > /usr/bin/bdsmail_domain
 | 
	
		
			
			| 314 |  | -    echo 'cd /etc/bdsmail' >> /usr/bin/bdsmail_domain
 | 
	
		
			
			|  | 315 | +    echo 'cd $BDSMAIL_DIR' >> /usr/bin/bdsmail_domain
 | 
	
		
			
			| 315 | 316 |      echo 'if [ ! -f bdsmail-privkey.dat ]; then' >> /usr/bin/bdsmail_domain
 | 
	
		
			
			| 316 | 317 |      echo '    exit 1' >> /usr/bin/bdsmail_domain
 | 
	
		
			
			| 317 | 318 |      echo 'fi' >> /usr/bin/bdsmail_domain
 | 
	
	
		
			
			|  | @@ -353,7 +354,7 @@ function install_bdsmail {
 | 
	
		
			
			| 353 | 354 |      echo 'set smtp_url=smtp://127.0.0.1:2525/' >> /etc/skel/.mutt/bdsmail
 | 
	
		
			
			| 354 | 355 |      echo 'set use_from=yes' >> /etc/skel/.mutt/bdsmail
 | 
	
		
			
			| 355 | 356 |      echo "set from=username@${bds_domain}" >> /etc/skel/.mutt/bdsmail
 | 
	
		
			
			| 356 |  | -    echo 'set spoolfile=/etc/bdsmail/mail/username' >> /etc/skel/.mutt/bdsmail
 | 
	
		
			
			|  | 357 | +    echo "set spoolfile=$BDSMAIL_DIR/mail/username" >> /etc/skel/.mutt/bdsmail
 | 
	
		
			
			| 357 | 358 |  
 | 
	
		
			
			| 358 | 359 |      # mutt configuration for the admin user
 | 
	
		
			
			| 359 | 360 |      if [ ! -d /home/$MY_USERNAME/.mutt ]; then
 |