|  | @@ -41,6 +41,7 @@ app_node=
 | 
	
		
			
			| 41 | 41 |  app_onion_only=
 | 
	
		
			
			| 42 | 42 |  app_port=''
 | 
	
		
			
			| 43 | 43 |  app_daemon=
 | 
	
		
			
			|  | 44 | +app_dir=
 | 
	
		
			
			| 44 | 45 |  your_name=''
 | 
	
		
			
			| 45 | 46 |  your_email=''
 | 
	
		
			
			| 46 | 47 |  SHOW_ON_ABOUT=1
 | 
	
	
		
			
			|  | @@ -65,6 +66,7 @@ function show_help {
 | 
	
		
			
			| 65 | 66 |      echo $'  -p --php [yes|no]                    Is this a PHP app?'
 | 
	
		
			
			| 66 | 67 |      echo $'  -s --daemon [yes|no]                 Add a daemon'
 | 
	
		
			
			| 67 | 68 |      echo $'  -d --database [mariadb|postgresql]   Type of database'
 | 
	
		
			
			|  | 69 | +    echo $'     --dir [directory]                 Where to install to'
 | 
	
		
			
			| 68 | 70 |      echo ''
 | 
	
		
			
			| 69 | 71 |      exit 0
 | 
	
		
			
			| 70 | 72 |  }
 | 
	
	
		
			
			|  | @@ -128,6 +130,10 @@ do
 | 
	
		
			
			| 128 | 130 |              shift
 | 
	
		
			
			| 129 | 131 |              app_port="$1"
 | 
	
		
			
			| 130 | 132 |              ;;
 | 
	
		
			
			|  | 133 | +        --dir)
 | 
	
		
			
			|  | 134 | +            shift
 | 
	
		
			
			|  | 135 | +            app_dir="$1"
 | 
	
		
			
			|  | 136 | +            ;;
 | 
	
		
			
			| 131 | 137 |          *)
 | 
	
		
			
			| 132 | 138 |              # unknown option
 | 
	
		
			
			| 133 | 139 |              ;;
 | 
	
	
		
			
			|  | @@ -340,8 +346,13 @@ echo "        ${app_name_upper}_DOMAIN_NAME=\$(get_completion_param \"${app_name
 | 
	
		
			
			| 340 | 346 |  echo '    fi'
 | 
	
		
			
			| 341 | 347 |  echo ''
 | 
	
		
			
			| 342 | 348 |  echo '    # update to the next commit'
 | 
	
		
			
			| 343 |  | -echo "    set_repo_commit /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs \"${app_name} commit\" \"\$${app_name_upper}_COMMIT\" \$${app_name_upper}_REPO"
 | 
	
		
			
			| 344 |  | -echo "    chown -R www-data:www-data /var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 349 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 350 | +    echo "    set_repo_commit /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs \"${app_name} commit\" \"\$${app_name_upper}_COMMIT\" \$${app_name_upper}_REPO"
 | 
	
		
			
			|  | 351 | +    echo "    chown -R www-data:www-data /var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 352 | +else
 | 
	
		
			
			|  | 353 | +    echo "    set_repo_commit ${app_dir} \"${app_name} commit\" \"\$${app_name_upper}_COMMIT\" \$${app_name_upper}_REPO"
 | 
	
		
			
			|  | 354 | +    echo "    chown -R ${app_name}:${app_name} ${app_dir}"
 | 
	
		
			
			|  | 355 | +fi
 | 
	
		
			
			| 345 | 356 |  echo '}'
 | 
	
		
			
			| 346 | 357 |  echo ''
 | 
	
		
			
			| 347 | 358 |  echo "function backup_local_${app_name} {"
 | 
	
	
		
			
			|  | @@ -350,7 +361,11 @@ echo "    if grep -q \"${app_name} domain\" \$COMPLETION_FILE; then"
 | 
	
		
			
			| 350 | 361 |  echo "        ${app_name_upper}_DOMAIN_NAME=\$(get_completion_param \"${app_name} domain\")"
 | 
	
		
			
			| 351 | 362 |  echo '    fi'
 | 
	
		
			
			| 352 | 363 |  echo ''
 | 
	
		
			
			| 353 |  | -echo "    source_directory=/var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 364 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 365 | +    echo "    source_directory=/var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 366 | +else
 | 
	
		
			
			|  | 367 | +    echo "    source_directory=${app_dir}"
 | 
	
		
			
			|  | 368 | +fi
 | 
	
		
			
			| 354 | 369 |  echo ''
 | 
	
		
			
			| 355 | 370 |  echo "    suspend_site \${${app_name_upper}_DOMAIN_NAME}"
 | 
	
		
			
			| 356 | 371 |  echo ''
 | 
	
	
		
			
			|  | @@ -376,7 +391,11 @@ echo '    fi'
 | 
	
		
			
			| 376 | 391 |  echo "    ${app_name_upper}_DOMAIN_NAME=\$(get_completion_param \"${app_name} domain\")"
 | 
	
		
			
			| 377 | 392 |  echo "    if [ \$${app_name_upper}_DOMAIN_NAME ]; then"
 | 
	
		
			
			| 378 | 393 |  echo "        temp_restore_dir=/root/temp${app_name}"
 | 
	
		
			
			| 379 |  | -echo "        ${app_name}_dir=/var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 394 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 395 | +    echo "        ${app_name}_dir=/var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 396 | +else
 | 
	
		
			
			|  | 397 | +    echo "        ${app_name}_dir=${app_dir}"
 | 
	
		
			
			|  | 398 | +fi
 | 
	
		
			
			| 380 | 399 |  echo ''
 | 
	
		
			
			| 381 | 400 |  if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" ]]; then
 | 
	
		
			
			| 382 | 401 |      echo "        ${app_name}_create_database"
 | 
	
	
		
			
			|  | @@ -420,7 +439,11 @@ echo "    if grep -q \"${app_name} domain\" \$COMPLETION_FILE; then"
 | 
	
		
			
			| 420 | 439 |  echo "        ${app_name_upper}_DOMAIN_NAME=\$(get_completion_param \"${app_name} domain\")"
 | 
	
		
			
			| 421 | 440 |  echo '    fi'
 | 
	
		
			
			| 422 | 441 |  echo ''
 | 
	
		
			
			| 423 |  | -echo "    source_directory=/var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 442 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 443 | +    echo "    source_directory=/var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 444 | +else
 | 
	
		
			
			|  | 445 | +    echo "    source_directory=${app_dir}"
 | 
	
		
			
			|  | 446 | +fi
 | 
	
		
			
			| 424 | 447 |  echo ''
 | 
	
		
			
			| 425 | 448 |  echo "    suspend_site \${${app_name_upper}_DOMAIN_NAME}"
 | 
	
		
			
			| 426 | 449 |  echo ''
 | 
	
	
		
			
			|  | @@ -446,7 +469,11 @@ echo '    fi'
 | 
	
		
			
			| 446 | 469 |  echo "    ${app_name_upper}_DOMAIN_NAME=\$(get_completion_param \"${app_name} domain\")"
 | 
	
		
			
			| 447 | 470 |  echo "    if [ \$${app_name_upper}_DOMAIN_NAME ]; then"
 | 
	
		
			
			| 448 | 471 |  echo "        temp_restore_dir=/root/temp${app_name}"
 | 
	
		
			
			| 449 |  | -echo "        ${app_name}_dir=/var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 472 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 473 | +    echo "        ${app_name}_dir=/var/www/\${${app_name_upper}_DOMAIN_NAME}/htdocs"
 | 
	
		
			
			|  | 474 | +else
 | 
	
		
			
			|  | 475 | +    echo "        ${app_name}_dir=${app_dir}"
 | 
	
		
			
			|  | 476 | +fi
 | 
	
		
			
			| 450 | 477 |  echo ''
 | 
	
		
			
			| 451 | 478 |  if [[ "$database_type" == "mariadb" || "$database_type" == "mysql" ]]; then
 | 
	
		
			
			| 452 | 479 |      echo "        ${app_name}_create_database"
 | 
	
	
		
			
			|  | @@ -553,20 +580,37 @@ echo '    fi'
 | 
	
		
			
			| 553 | 580 |  echo "    if [ ! -d /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs ]; then"
 | 
	
		
			
			| 554 | 581 |  echo "        if [ -d /repos/${app_name} ]; then"
 | 
	
		
			
			| 555 | 582 |  echo "            mkdir /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			| 556 |  | -echo "            cp -r -p /repos/${app_name}/. /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			| 557 |  | -echo "            cd /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			|  | 583 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 584 | +    echo "            cp -r -p /repos/${app_name}/. /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			|  | 585 | +    echo "            cd /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			|  | 586 | +else
 | 
	
		
			
			|  | 587 | +    echo "            cp -r -p /repos/${app_name}/. ${app_dir}"
 | 
	
		
			
			|  | 588 | +    echo "            cd ${app_dir}"
 | 
	
		
			
			|  | 589 | +fi
 | 
	
		
			
			| 558 | 590 |  echo '            git pull'
 | 
	
		
			
			| 559 | 591 |  echo '        else'
 | 
	
		
			
			| 560 |  | -echo "            git_clone \$${app_name_upper}_REPO /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			|  | 592 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 593 | +    echo "            git_clone \$${app_name_upper}_REPO /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			|  | 594 | +else
 | 
	
		
			
			|  | 595 | +    echo "            git_clone \$${app_name_upper}_REPO ${app_dir}"
 | 
	
		
			
			|  | 596 | +fi
 | 
	
		
			
			| 561 | 597 |  echo '        fi'
 | 
	
		
			
			| 562 | 598 |  echo ''
 | 
	
		
			
			| 563 |  | -echo "        if [ ! -d /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs ]; then"
 | 
	
		
			
			|  | 599 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 600 | +    echo "        if [ ! -d /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs ]; then"
 | 
	
		
			
			|  | 601 | +else
 | 
	
		
			
			|  | 602 | +    echo "        if [ ! -d ${app_dir} ]; then"
 | 
	
		
			
			|  | 603 | +fi
 | 
	
		
			
			| 564 | 604 |  echo "            echo \$'Unable to clone ${app_name} repo'"
 | 
	
		
			
			| 565 | 605 |  echo '            exit 87525'
 | 
	
		
			
			| 566 | 606 |  echo '        fi'
 | 
	
		
			
			| 567 | 607 |  echo '    fi'
 | 
	
		
			
			| 568 | 608 |  echo ''
 | 
	
		
			
			| 569 |  | -echo "    cd /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			|  | 609 | +if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 610 | +    echo "    cd /var/www/\$${app_name_upper}_DOMAIN_NAME/htdocs"
 | 
	
		
			
			|  | 611 | +else
 | 
	
		
			
			|  | 612 | +    echo "    cd ${app_dir}"
 | 
	
		
			
			|  | 613 | +fi
 | 
	
		
			
			| 570 | 614 |  echo "    git checkout \$${app_name_upper}_COMMIT -b \$${app_name_upper}_COMMIT"
 | 
	
		
			
			| 571 | 615 |  echo "    set_completion_param \"${app_name} commit\" \"\$${app_name_upper}_COMMIT\""
 | 
	
		
			
			| 572 | 616 |  echo ''
 | 
	
	
		
			
			|  | @@ -684,7 +728,11 @@ if [ $app_daemon ]; then
 | 
	
		
			
			| 684 | 728 |      echo "    echo 'Type=simple' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			| 685 | 729 |      echo "    echo 'User=${app_name}' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			| 686 | 730 |      echo "    echo 'Group=${app_name}' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			| 687 |  | -    echo "    echo 'WorkingDirectory=TODO' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			|  | 731 | +    if [ ! $app_dir ]; then
 | 
	
		
			
			|  | 732 | +        echo "    echo 'WorkingDirectory=TODO' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			|  | 733 | +    else
 | 
	
		
			
			|  | 734 | +        echo "    echo 'WorkingDirectory=${app_dir}' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			|  | 735 | +    fi
 | 
	
		
			
			| 688 | 736 |      echo "    echo 'ExecStart=TODO' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			| 689 | 737 |      echo "    echo 'Restart=always' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			| 690 | 738 |      echo "    echo 'Environment=\"USER=${app_name}\"' >> /etc/systemd/system/${app_name}.service"
 | 
	
	
		
			
			|  | @@ -692,6 +740,9 @@ if [ $app_daemon ]; then
 | 
	
		
			
			| 692 | 740 |      echo "    echo '[Install]' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			| 693 | 741 |      echo "    echo 'WantedBy=multi-user.target' >> /etc/systemd/system/${app_name}.service"
 | 
	
		
			
			| 694 | 742 |      echo "    systemctl enable ${app_name}"
 | 
	
		
			
			|  | 743 | +    if [ $app_dir ]; then
 | 
	
		
			
			|  | 744 | +        echo "    chown -R ${app_name}:${app_name} ${app_dir}"
 | 
	
		
			
			|  | 745 | +    fi
 | 
	
		
			
			| 695 | 746 |      echo "    systemctl start ${app_name}"
 | 
	
		
			
			| 696 | 747 |  fi
 | 
	
		
			
			| 697 | 748 |  echo ''
 |