From ca0d3de3f12b14cb2bc8a39bfaa025d19da08a70 Mon Sep 17 00:00:00 2001 From: joglomedia Date: Fri, 22 Nov 2019 21:54:17 +0700 Subject: [PATCH] added DB cli (experimental) --- bin/lemper-cli.sh | 66 ++++++++++++++++++++++++++++++---------- scripts/install_tools.sh | 8 +++-- 2 files changed, 56 insertions(+), 18 deletions(-) diff --git a/bin/lemper-cli.sh b/bin/lemper-cli.sh index 57a85f1..65af3cb 100755 --- a/bin/lemper-cli.sh +++ b/bin/lemper-cli.sh @@ -21,10 +21,27 @@ set -e APP_NAME=$(basename "$0") APP_VERSION="1.3.0" -LibDir="/usr/local/lib/lemper" +# Export stack configuration. +if [ -f "/etc/lemper/lemper.conf" ]; then + # Clean environemnt first. + # shellcheck source=/etc/lemper/lemper.conf + # shellcheck disable=SC2046 + unset $(grep -v '^#' /etc/lemper/lemper.conf | grep -v '^\[' | sed -E 's/(.*)=.*/\1/' | xargs) + + # shellcheck source=/etc/lemper/lemper.conf + # shellcheck disable=SC1094 + source <(grep -v '^#' /etc/lemper/lemper.conf | grep -v '^\[' | sed -E 's|^(.+)=(.*)$|: ${\1=\2}; export \1|g') +else + echo "LEMPer stack configuration required, but the file doesn't exist." + echo "It should be created during installation process and placed under '/etc/lemper/lemper.conf'" + exit 1 +fi + +# App library directory. +APP_LIB_DIR="/usr/local/lib/lemper" function cmd_help() { -cat <<- _EOF_ + cat <<- _EOF_ ${APP_NAME^} ${APP_VERSION} Command line management tool for LEMPer stack. @@ -38,24 +55,32 @@ These are common $APP_NAME commands used in various situations: For help with each command run: $APP_NAME -h|--help _EOF_ + + exit 0 } function cmd_version() { echo "$APP_NAME version $APP_VERSION" + exit 0 } function cmd_create() { - if [ -x "$LibDir/lemper-create" ]; then - "$LibDir/lemper-create" "$@" + if [ -x "$APP_LIB_DIR/lemper-create" ]; then + "$APP_LIB_DIR/lemper-create" "$@" else echo "Oops, lemper create subcommand module couldn't be loaded." exit 1 fi } +# Aliases to create. +function cmd_vhost() { + cmd_create "$@" +} + function cmd_manage() { - if [ -x "$LibDir/lemper-manage" ]; then - "$LibDir/lemper-manage" "$@" + if [ -x "$APP_LIB_DIR/lemper-manage" ]; then + "$APP_LIB_DIR/lemper-manage" "$@" else echo "Oops, lemper manage subcommand module couldn't be loaded." exit 1 @@ -63,31 +88,40 @@ function cmd_manage() { } function cmd_tfm() { - if [ -x "$LibDir/lemper-tfm" ]; then - "$LibDir/lemper-tfm" "$@" + if [ -x "$APP_LIB_DIR/lemper-tfm" ]; then + "$APP_LIB_DIR/lemper-tfm" "$@" else echo "Oops, lemper tfm subcommand module couldn't be loaded." exit 1 fi } -SubCommand=$1 -case ${SubCommand} in - "" | "-h" | "--help") +function cmd_db() { + if [ -x "$APP_LIB_DIR/lemper-db" ]; then + "$APP_LIB_DIR/lemper-db" "$@" + else + echo "Oops, lemper db (database) subcommand module couldn't be loaded." + exit 1 + fi +} + +SUBCOMMAND="${1}" +case ${SUBCOMMAND} in + "" | "help" ) cmd_help ;; - "-v" | "--version") + "version") cmd_version ;; *) shift - if declare -F "cmd_${SubCommand}" &>/dev/null; then - "cmd_${SubCommand}" "$@" + if declare -F "cmd_${SUBCOMMAND}" &>/dev/null; then + "cmd_${SUBCOMMAND}" "$@" else - echo "Error: '${SubCommand}' is not a known command." >&2 - echo " Run '${APP_NAME} --help' for a list of known commands." >&2 + echo "Error: '${SUBCOMMAND}' is not a known command." >&2 + echo "Run '${APP_NAME} --help' for a list of known commands." >&2 exit 1 fi ;; diff --git a/scripts/install_tools.sh b/scripts/install_tools.sh index 0d1764d..8f827f1 100755 --- a/scripts/install_tools.sh +++ b/scripts/install_tools.sh @@ -27,9 +27,13 @@ function init_webadmin_install() { run mkdir -p /usr/local/lib/lemper fi - run cp -f lib/lemper-create.sh /usr/local/lib/lemper/lemper-create - run cp -f lib/lemper-manage.sh /usr/local/lib/lemper/lemper-manage + run cp -f lib/lemper-create.sh /usr/local/lib/lemper/lemper-create && \ run chmod ugo+x /usr/local/lib/lemper/lemper-create + + run cp -f lib/lemper-db.sh /usr/local/lib/lemper/lemper-db && \ + run chmod ugo+x /usr/local/lib/lemper/lemper-db + + run cp -f lib/lemper-manage.sh /usr/local/lib/lemper/lemper-manage && \ run chmod ugo+x /usr/local/lib/lemper/lemper-manage # Install Web Admin.