diff --git a/dbench b/dbench index fb24c077..3f2285c1 100644 --- a/dbench +++ b/dbench @@ -1,18 +1,19 @@ #!/bin/bash -usage { - echo "Usage: dbench [-hda [sitename] | --init [-e | -d] [sitename (if not specified, it will default to site1.local)]] [\"\"]" +function usage { + echo "Usage: dbench [-hda [sitename] | --init [-ed] [sitename] | --setup ] [\"\"]" echo '' echo 'where:' echo ' -h show this help text' - echo ' -d [sitename] enables developer mode for specified site' + echo ' -d [sitename] enables developer mode for specified site' echo ' -a adds site-names to /etc/hosts file in the container to facilitate multisite access' - echo ' --init [-e | -d] [sitename] initializes frappe-bench' + echo ' --setup starts up and builds docker' + echo ' --init [-e | -d] [sitename] initializes frappe-bench in docker and adds a site "sitename" (if not specified, it will default to site1.local)' echo ' -e initializes frappe-bench and installs erpnext' echo ' -d initializes frappe-bench and enables developer mode' } -frappe_installer { +function frappe_installer { echo "starting frappe_docker setup" docker exec -i -u root frappe bash -c "cd /home/frappe && chown -R frappe:frappe ./*" docker exec -it frappe bash -c "cd .. && bench init frappe-bench --ignore-exist --skip-redis-config-generation && cd frappe-bench" @@ -27,34 +28,31 @@ frappe_installer { } if [[ $# -eq 0 ]]; then - docker exec -it frappe bash "bench $@" - -elif [[ $1 == '--init' && $2 == '-e' ]] -then - if ! $3 then - set -- "${@:1:2}" "site1.local" - fi - frappe_installer $3 - echo "installing erpnext" - docker exec -it frappe bash -c "bench get-app erpnext" - docker exec -it frappe bash -c "bench --site $3 install-app erpnext" - echo "finished" - -elif [[ $1 == '--init' && $2 == '-d' ]] -then - if ! $3 then - set -- "${@:1:2}" "site1.local" + docker exec -it frappe bash 'bench $@' + +elif [ $1 == '--init' ]; then + site=$2 + if ! $2; then set -- "${@:1}" "site1.local"; fi + if ! $3; then set -- "${@:1:2}" "site1.local" && site=$3; fi + if ! $4; then set -- "${@:1:2:3}" "site1.local" && site=$4; fi + frappe_installer $site + if [ $2 == '-e' ]; then + echo "installing erpnext" + docker exec -it frappe bash -c "bench get-app erpnext" + docker exec -it frappe bash -c "bench --site $site install-app erpnext" + echo "finished" + elif [ $2 == '-d' ]; then + docker exec -it -u root frappe bash -c "bench --site $site set-config \"developer_mode\" 1 && bench clear-cache" + elif [ $2 == '-ed' ]; then + echo "installing erpnext" + docker exec -it frappe bash -c "bench get-app erpnext" + docker exec -it frappe bash -c "bench --site $site install-app erpnext" + docker exec -it -u root frappe bash -c "bench --site $site set-config \"developer_mode\" 1 && bench clear-cache" + echo "finished" fi - frappe_installer $3 - docker exec -it -u root frappe bash -c "bench --site $3 set-config \"developer_mode\" 1 && bench clear-cache" - -elif [ $1 == '--init' ] -then - if ! $2 then - set -- "${@:1}" "site1.local" - fi - frappe_installer $2 +elif [ $1 == '--setup' ]; then + frappe_installer else while getopts ':had:' option; do case "$option" in @@ -73,6 +71,7 @@ else ;; d) docker exec -it -u root frappe bash -c "bench --site $OPTARG set-config \"developer_mode\" 1 && bench clear-cache" + ;; \?) echo "Invalid option: -$OPTARG" >&2 usage