Просмотр исходного кода

Merge pull request #1575 from hestiacp/feature/2021-01-add-wpcli-user-account

[Feature] Download / Install wp-cli for user
Raphael Schneeberger 5 лет назад
Родитель
Сommit
657a6e49d1
1 измененных файлов с 70 добавлено и 0 удалено
  1. 70 0
      bin/v-add-user-wp-cli

+ 70 - 0
bin/v-add-user-wp-cli

@@ -0,0 +1,70 @@
+#!/bin/bash
+# info: add wp-cli for a user
+# options: USER
+# labels: hestia
+#
+# example: v-add-user-wp-cli user
+#
+# The function adds support for wp-cli to the user account
+
+
+#----------------------------------------------------------#
+#                    Variable&Function                     #
+#----------------------------------------------------------#
+
+# Argument definition
+user=$1
+
+if [ -z "$HESTIA" ]; then
+    HESTIA="/usr/local/hestia"
+fi
+source $HESTIA/func/main.sh
+
+
+#----------------------------------------------------------#
+#                    Verifications                         #
+#----------------------------------------------------------#
+
+check_args '1' "$#" 'USER'
+is_format_valid 'user'
+is_object_valid 'user' 'USER' "$user"
+is_object_unsuspended 'user' 'USER' "$user"
+
+[ -z "$HOMEDIR" ] && check_result $E_NOTEXIST "Hestia environment vars not present"
+
+# Perform verification if read-only mode is enabled
+check_hestia_demo_mode
+
+
+#----------------------------------------------------------#
+#                       Action                             #
+#----------------------------------------------------------#
+
+WPCLI_DIR="/home/$user/.wp"
+WPCLI_BIN="$WPCLI_DIR/wp"
+WPCLICACHE_DIR="/home/$user/.wp-cli"
+
+if [ -f "$WPCLI_DIR" ]; then
+    echo "WP-CLI already available"
+    exit
+fi
+
+[ -z "$(readlink -m "$WPCLI_DIR" | egrep "^$HOMEDIR/$user/")" ] && check_result $E_FORBIDEN "Path outside of user homedir (WP Cli dir)"
+[ -z "$(readlink -m "$WPCLI_BIN" | egrep "^$HOMEDIR/$user/")" ] && check_result $E_FORBIDEN "Path outside of user homedir (WP Cli bin)"
+
+mkdir -p "$WPCLI_DIR"
+chown $user:$user "$WPCLI_DIR"
+
+user_exec wget --tries=3 --timeout=15 --read-timeout=15 --waitretry=3 --no-dns-cache --quiet -O $WPCLI_BIN https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar 
+user_exec chmod +x $WPCLI_BIN
+
+
+#----------------------------------------------------------#
+#                       Hestia                             #
+#----------------------------------------------------------#
+
+# Logging
+log_history "Enabled wp-cli for user $user"
+log_event "$OK" "$ARGUMENTS"
+
+exit