diff --git a/git-pull-all.bat b/git-pull-all.bat index e118f30..e479da3 100644 --- a/git-pull-all.bat +++ b/git-pull-all.bat @@ -1,26 +1,35 @@ @echo off -echo *** Testing Path [%1] [D:\faronear] [C:\faronear] [%HOMEDRIVE%%HOMEPATH%\faronear] [../..] +@REM 首先清楚可能残留的变量 +set FONPATH= -@ if not "%1" == "" ( - set BASEDIR=%1 -) else (if exist D:\faronear ( - set BASEDIR=D:\faronear -) else (if exist C:\faronear ( - set BASEDIR=C:\faronear -) else (if exist %HOMEDRIVE%%HOMEPATH%\faronear ( - set BASEDIR=%HOMEDRIVE%%HOMEPATH%\faronear +@ if not "" == "%1" ( + set FONPATH=%1 ) else ( - set BASEDIR=..\.. -)))) - -if not exist %BASEDIR% ( - echo *** [%BASEDIR%] not exist! Exit now. *** - @ GOTO END + echo === Enter [faronear root path] or leave blank for default to one of [D:\faronear], [C:\faronear], [%HOMEDRIVE%%HOMEPATH%\faronear], [.] + set /p FONPATH=">>> " + echo; ) -pushd %BASEDIR% -echo *** Current path = [%CD%] *** +@ if "" == "%FONPATH%" ( + if exist D:\faronear ( + set FONPATH=D:\faronear + ) else (if exist C:\faronear ( + set FONPATH=C:\faronear + ) else (if exist %HOMEDRIVE%%HOMEPATH%\faronear ( + set FONPATH=%HOMEDRIVE%%HOMEPATH%\faronear + ) else ( + set FONPATH=. + ))) +) else ( + if not exist "%FONPATH%" ( + echo *** [%FONPATH%] not exist! Exit now. *** + @ GOTO END + ) +) + +pushd %FONPATH% +echo *** FONPATH = [%CD%] *** echo; @REM for /d %%d in (*) do ( pushd %%d & ( for /d %%d in (*) do ( if exist %%d/.git pushd %%d & echo --- git pulling: %%d ... & git pull & popd ) ) & popd ) @@ -30,16 +39,16 @@ for /d %%o in (*) do ( if not %%o == .vscode ( @REM 如果同时使用了 GIT 和 云盘进行管理,每次 git pull 都会造成 .git 目录下某些文件变化,导致云盘不断自动同步。因此过滤掉云盘的目录不做更新。 echo %%o | findstr "=" >NUL && ( - echo !!!!!!!! omitting [%BASEDIR%\%%o] !!!!!!!! + echo !!!!!!!! omitting [%FONPATH%\%%o] !!!!!!!! echo; ) || ( - echo ======== entering [%BASEDIR%\%%o] ======== + echo ======== entering [%FONPATH%\%%o] ======== echo; pushd %%o for /d %%g in (*) do ( if exist %%g\.git ( pushd %%g - echo ---- git pulling [%BASEDIR%\%%o\%%g] ---- + echo ---- git pulling [%FONPATH%\%%o\%%g] ---- git pull --all echo; popd diff --git a/git-pull-all.sh b/git-pull-all.sh index 40003c4..981fd8a 100755 --- a/git-pull-all.sh +++ b/git-pull-all.sh @@ -4,32 +4,34 @@ if [ $1 ] then FONPATH=$1 else - echo Leave blank for default [/faronear], [~/faronear], [.], - read -p "or enter faronear path to git pull >> " FONPATH - if [ ! $FONPATH ] - then - if [ -d /faronear ] - then - FONPATH=/faronear + echo "=== Enter [faronear root path] or leave blank for default to one of [/faronear], [~/faronear], [.]" + read -p ">>> " FONPATH + echo "" +fi + +if [ ! $FONPATH ] +then + if [ -d /faronear ] + then + FONPATH=/faronear + else + if [ -d ~/faronear ] + then + FONPATH=~/faronear else - if [ -d ~/faronear ] - then - FONPATH=~/faronear - else - FONPATH=. - fi + FONPATH=. fi fi +else + if [ ! -d $FONPATH ] + then + echo "*** [$FONPATH] not exist! Exit now. ***" + exit + fi fi -if [ ! -d $FONPATH ] -then - echo "*** [$FONPATH] not exist! Exit now. ***" - exit -fi - pushd $FONPATH -echo "*** Current path = [`pwd`] ***" +echo "*** FONPATH = [`pwd`] ***" echo "" # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 diff --git a/git-push-all.bat b/git-push-all.bat index b5de472..a85e28a 100644 --- a/git-push-all.bat +++ b/git-push-all.bat @@ -1,26 +1,35 @@ @echo off -echo *** Testing Path [%1] [D:\faronear] [C:\faronear] [%HOMEDRIVE%%HOMEPATH%\faronear] [../..] +@REM 首先清楚可能残留的变量 +set FONPATH= -@ if not "%1" == "" ( - set BASEDIR=%1 -) else (if exist D:\faronear ( - set BASEDIR=D:\faronear -) else (if exist C:\faronear ( - set BASEDIR=C:\faronear -) else (if exist %HOMEDRIVE%%HOMEPATH%\faronear ( - set BASEDIR=%HOMEDRIVE%%HOMEPATH%\faronear +@ if not "" == "%1" ( + set FONPATH=%1 ) else ( - set BASEDIR=..\.. -)))) - -if not exist %BASEDIR% ( - echo *** [%BASEDIR%] not exist! Exit now. *** - @ GOTO END + echo === Enter [faronear root path] or leave blank for default to one of [D:\faronear], [C:\faronear], [%HOMEDRIVE%%HOMEPATH%\faronear], [.] + set /p FONPATH=">>> " + echo; ) -pushd %BASEDIR% -echo *** Current path = [%CD%] *** +@ if "" == "%FONPATH%" ( + if exist D:\faronear ( + set FONPATH=D:\faronear + ) else (if exist C:\faronear ( + set FONPATH=C:\faronear + ) else (if exist %HOMEDRIVE%%HOMEPATH%\faronear ( + set FONPATH=%HOMEDRIVE%%HOMEPATH%\faronear + ) else ( + set FONPATH=. + ))) +) else ( + if not exist "%FONPATH%" ( + echo *** [%FONPATH%] not exist! Exit now. *** + @ GOTO END + ) +) + +pushd %FONPATH% +echo *** FONPATH = [%CD%] *** echo; @REM for /d %%d in (*) do ( pushd %%d & ( for /d %%d in (*) do ( if exist %%d/.git pushd %%d & echo --- git pulling: %%d ... & git pull & popd ) ) & popd ) @@ -30,16 +39,16 @@ for /d %%o in (*) do ( if not %%o == .vscode ( @REM 如果同时使用了 GIT 和 云盘进行管理,每次 git push 都会造成 .git 目录下某些文件变化,导致云盘不断自动同步。因此过滤掉云盘的目录不做更新。 echo %%o | findstr "=" >NUL && ( - echo !!!!!!!! omitting [%BASEDIR%\%%o] !!!!!!!! + echo !!!!!!!! omitting [%FONPATH%\%%o] !!!!!!!! echo; ) || ( - echo ======== entering [%BASEDIR%\%%o] ======== + echo ======== entering [%FONPATH%\%%o] ======== echo; pushd %%o for /d %%g in (*) do ( if exist %%g\.git ( pushd %%g - echo ---- git add-commit-push [%BASEDIR%\%%o\%%g] ---- + echo ---- git add-commit-push [%FONPATH%\%%o\%%g] ---- git add . && git commit -m 'updated' && git push echo; popd diff --git a/git-push-all.sh b/git-push-all.sh index 3b5b0bd..b070eb3 100755 --- a/git-push-all.sh +++ b/git-push-all.sh @@ -4,32 +4,42 @@ if [ $1 ] then FONPATH=$1 else - echo Leave blank for default [/faronear], [~/faronear], [.], - read -p "or enter faronear path to git push >> " FONPATH - if [ ! $FONPATH ] - then - if [ -d /faronear ] - then - FONPATH=/faronear + echo "=== Enter [faronear root path] or leave blank for default to one of [/faronear], [~/faronear], [.]" + read -p ">>> " FONPATH + echo "" +fi + +if [ ! $FONPATH ] +then + if [ -d /faronear ] + then + FONPATH=/faronear + else + if [ -d ~/faronear ] + then + FONPATH=~/faronear else - if [ -d ~/faronear ] - then - FONPATH=~/faronear - else - FONPATH=. - fi + FONPATH=. fi fi +else + if [ ! -d $FONPATH ] + then + echo "*** [$FONPATH] not exist! Exit now. ***" + exit + fi fi -if [ ! -d $FONPATH ] -then - echo "*** [$FONPATH] not exist! Exit now. ***" - exit -fi - pushd $FONPATH -echo "*** Current path = [`pwd`] ***" +echo "*** FONPATH = [`pwd`] ***" +echo "" + +echo "=== Enter [commit message] or leave blank for default to 'updated'" +read -p ">>> " COMMIT_MESSAGE +if [ ! $COMMIT_MESSAGE ] +then + COMMIT_MESSAGE="updated" +fi echo "" # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 @@ -44,7 +54,7 @@ do then echo "---- git add-commit-push [`pwd`/$repo] ----" cd "$repo" - git add . && git commit -m 'updated' && git push + git add . && git commit -m $COMMIT_MESSAGE && git push echo "" cd .. fi diff --git a/npm-boot-all.bat b/npm-boot-all.bat index c17b2dd..3cfd3e4 100644 --- a/npm-boot-all.bat +++ b/npm-boot-all.bat @@ -1,26 +1,35 @@ @echo off -echo *** Testing Path [%1] [D:\faronear] [C:\faronear] [%HOMEDRIVE%%HOMEPATH%\faronear] [../..] +@REM 首先清楚可能残留的变量 +set FONPATH= -@ if not "%1" == "" ( - set BASEDIR=%1 -) else (if exist D:\faronear ( - set BASEDIR=D:\faronear -) else (if exist C:\faronear ( - set BASEDIR=C:\faronear -) else (if exist %HOMEDRIVE%%HOMEPATH%\faronear ( - set BASEDIR=%HOMEDRIVE%%HOMEPATH%\faronear +@ if not "" == "%1" ( + set FONPATH=%1 ) else ( - set BASEDIR=..\.. -)))) - -if not exist %BASEDIR% ( - echo *** [%BASEDIR%] not exist! Exit now. *** - @ GOTO END + echo === Enter [faronear root path] or leave blank for default to one of [D:\faronear], [C:\faronear], [%HOMEDRIVE%%HOMEPATH%\faronear], [.] + set /p FONPATH=">>> " + echo; ) -pushd %BASEDIR% -echo *** Current path = [%CD%] *** +@ if "" == "%FONPATH%" ( + if exist D:\faronear ( + set FONPATH=D:\faronear + ) else (if exist C:\faronear ( + set FONPATH=C:\faronear + ) else (if exist %HOMEDRIVE%%HOMEPATH%\faronear ( + set FONPATH=%HOMEDRIVE%%HOMEPATH%\faronear + ) else ( + set FONPATH=. + ))) +) else ( + if not exist "%FONPATH%" ( + echo *** [%FONPATH%] not exist! Exit now. *** + @ GOTO END + ) +) + +pushd %FONPATH% +echo *** FONPATH = [%CD%] *** echo; @REM for /d %%d in (*) do ( pushd %%d & ( for /d %%d in (*) do if exist %%d/package.json ( pushd %%d & echo --- npm booting: %%d ... & npm run boot & popd ) ) & popd ) @@ -28,17 +37,17 @@ echo; for /d %%o in (*) do ( if not %%o == .vscode ( echo %%o | findstr "=" >NUL && ( - echo !!!!!!!! omitting [%BASEDIR%\%%o] !!!!!!!! + echo !!!!!!!! omitting [%FONPATH%\%%o] !!!!!!!! echo; ) || ( - echo ======== entering [%BASEDIR%\%%o] ======== + echo ======== entering [%FONPATH%\%%o] ======== echo; pushd %%o for /d %%g in (*) do ( if exist %%g\package.json ( findstr "\"boot\"" %%g\package.json >NUL && ( pushd %%g - echo ---- npm booting [%BASEDIR%\%%o\%%g] ---- + echo ---- npm booting [%FONPATH%\%%o\%%g] ---- npm run boot echo; popd diff --git a/npm-boot-all.sh b/npm-boot-all.sh index 6668393..38b044e 100755 --- a/npm-boot-all.sh +++ b/npm-boot-all.sh @@ -4,32 +4,34 @@ if [ $1 ] then FONPATH=$1 else - echo Leave blank for default [/faronear], [~/faronear], [.], - read -p "or enter faronear path to npm run boot >> " FONPATH - if [ ! $FONPATH ] - then - if [ -d /faronear ] - then - FONPATH=/faronear + echo "=== Enter [faronear root path] or leave blank for default to one of [/faronear], [~/faronear], [.]" + read -p ">>> " FONPATH + echo "" +fi + +if [ ! $FONPATH ] +then + if [ -d /faronear ] + then + FONPATH=/faronear + else + if [ -d ~/faronear ] + then + FONPATH=~/faronear else - if [ -d ~/faronear ] - then - FONPATH=~/faronear - else - FONPATH=. - fi + FONPATH=. fi fi +else + if [ ! -d $FONPATH ] + then + echo "*** [$FONPATH] not exist! Exit now. ***" + exit + fi fi -if [ ! -d $FONPATH ] -then - echo "*** [$FONPATH] not exist! Exit now. ***" - exit -fi - pushd $FONPATH -echo "*** Current path = [`pwd`] ***" +echo "*** FONPATH = [`pwd`] ***" # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 ls -F | grep '/$' | grep -v '=' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 do