From c9a6d2f5a80c70cf829ad2281bf5496685db6a50 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sun, 16 Jan 2022 15:14:58 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/cmd b/cmd index 9f3470ae..c83803ae 100755 --- a/cmd +++ b/cmd @@ -31,6 +31,15 @@ rand() { echo $(($num%$max+$min)) } +rand_string() { + local lan=$1 + if [[ `uname` == 'Linux' ]]; then + echo "$(date +%s%N | md5sum | cut -c 1-${lan})" + else + echo "$(docker run -it --rm alpine sh -c "date +%s%N | md5sum | cut -c 1-${lan}")" + fi +} + supervisorctl_restart() { local RES=`run_exec php "supervisorctl update $1"` if [ -z "$RES" ]; then @@ -178,8 +187,11 @@ env_set() { if [ -z "$exist" ]; then echo "$key=$val" >> $cur_path/.env else - command="sed -i '/^$key=/c\\$key=$val' /www/.env" - docker run -it --rm -v ${cur_path}:/www alpine sh -c "$command" + if [[ `uname` == 'Linux' ]]; then + sed -i "/^${key}=/c\\${key}=${val}" /www/.env + else + docker run -it --rm -v ${cur_path}:/www alpine sh -c "sed -i "/^${key}=/c\\${key}=${val}" /www/.env" + fi if [ $? -ne 0 ]; then echo -e "${Error} ${RedBG} 设置env参数失败!${Font}" exit 1 @@ -192,10 +204,10 @@ env_init() { cp .env.docker .env fi if [ -z "$(env_get DB_ROOT_PASSWORD)" ]; then - env_set DB_ROOT_PASSWORD "$(docker run -it --rm alpine sh -c "date +%s%N | md5sum | cut -c 1-16")" + env_set DB_ROOT_PASSWORD "$(rand_string 16)" fi if [ -z "$(env_get APP_ID)" ]; then - env_set APP_ID "$(docker run -it --rm alpine sh -c "date +%s%N | md5sum | cut -c 1-6")" + env_set APP_ID "$(rand_string 6)" fi if [ -z "$(env_get APP_IPPR)" ]; then env_set APP_IPPR "10.$(rand 50 100).$(rand 100 200)" @@ -207,16 +219,28 @@ arg_get() { local value="" for var in $cur_arg; do if [[ "$find" == "y" ]]; then - value=$var + if [[ ! $var =~ "--" ]]; then + value=$var + fi break fi if [[ "--$1" == "$var" ]] || [[ "-$1" == "$var" ]]; then find="y" + value="yes" fi done echo $value } +is_arm() { + local get_arch=`arch` + if [[ $get_arch =~ "aarch" ]] || [[ $get_arch =~ "arm" ]]; then + echo "yes" + else + echo "no" + fi +} + #################################################################################### #################################################################################### #################################################################################### @@ -229,6 +253,11 @@ fi if [ $# -gt 0 ]; then if [[ "$1" == "init" ]] || [[ "$1" == "install" ]]; then shift 1 + # 判断架构 + if [[ "$(is_arm)" == "yes" ]] && [[ -z "$(arg_get force)" ]]; then + echo -e "${Error} ${RedBG}暂不支持arm架构,强制安装请使用:./cmd install --force${Font}" + exit 1 + fi # 初始化文件 rm -rf composer.lock rm -rf package-lock.json