From 6555284efc1a36e6571bff124af59adbc2f17cb3 Mon Sep 17 00:00:00 2001 From: Luk Lu Date: Thu, 12 Jan 2023 19:18:22 +0800 Subject: [PATCH] merge *-all.* into *-recursive.* --- git-pull-all.bat | 68 -------------------------------------- git-pull-all.sh | 64 ------------------------------------ git-pull-recursive.bat | 36 +++++++++++++++----- git-pull-recursive.sh | 44 +++++++++++++++++++------ git-push-all.bat | 74 ------------------------------------------ git-push-all.sh | 72 ---------------------------------------- git-push-recursive.bat | 36 +++++++++++++++----- git-push-recursive.sh | 45 ++++++++++++++++++------- npm-boot-all.bat | 68 -------------------------------------- npm-boot-all.sh | 65 ------------------------------------- npm-boot-recursive.bat | 43 ++++++++++++++++++------ npm-boot-recursive.sh | 53 ++++++++++++++++++++++-------- npm-clear-all.bat | 68 -------------------------------------- 13 files changed, 196 insertions(+), 540 deletions(-) delete mode 100644 git-pull-all.bat delete mode 100755 git-pull-all.sh delete mode 100644 git-push-all.bat delete mode 100755 git-push-all.sh delete mode 100644 npm-boot-all.bat delete mode 100755 npm-boot-all.sh delete mode 100644 npm-clear-all.bat diff --git a/git-pull-all.bat b/git-pull-all.bat deleted file mode 100644 index ad485dd..0000000 --- a/git-pull-all.bat +++ /dev/null @@ -1,68 +0,0 @@ -@echo off - -@REM 首先清除可能残留的变量 -set FONPATH= - -set FONPATH1=D:\faronear -set FONPATH2=C:\faronear -set FONPATH3=%HOMEDRIVE%%HOMEPATH%\faronear - -@ if not "" == "%1" ( - set FONPATH=%1 -) else ( - echo *** Testing Path [%FONPATH1%] [%FONPATH2%] [%FONPATH3%] - if exist "%FONPATH1%" ( - set FONPATH=%FONPATH1% - ) else if exist "%FONPATH2%" ( - set FONPATH=%FONPATH2% - ) else if exist "%FONPATH3%" ( - set FONPATH=%FONPATH3% - ) else ( - echo === none of the testing path is valid. - echo === Enter [fonpath] or leave [blank] for default to '.' - set /p FONPATH=">>> " - echo; - if "" == "%FONPATH%" ( - set FONPATH=. - ) - ) -) - - -if not exist "%FONPATH%" ( - echo ××× [%FONPATH%] not exist! Exit now. *** - @ GOTO END -) else ( - echo √√√ FONPATH = %FONPATH% -) - -pushd %FONPATH% -echo *** Starting from [%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 ) - -for /d %%o in (*) do ( - @ if not "%%o" == ".vscode" ( - echo ======== entering [%FONPATH%\%%o] ======== - echo; - pushd %%o - for /d %%g in (*) do ( - if exist "%%g\.git" ( - pushd %%g - echo ---- git pulling [%FONPATH%\%%o\%%g] ---- - git pull --all - echo; - popd - ) - ) - popd - ) -) - -popd - -:END - -pause - diff --git a/git-pull-all.sh b/git-pull-all.sh deleted file mode 100755 index b30029b..0000000 --- a/git-pull-all.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash - -FONPATH1=/faronear -FONPATH2=~/faronear.git -FONPATH3=~/faronear -FONPATH4=/mnt/d/faronear - -if [ "$1" ] -then - FONPATH=$1 -elif [ -d $FONPATH1 ] -then - FONPATH=$FONPATH1 -elif [ -d $FONPATH2 ] -then - FONPATH=$FONPATH2 -elif [ -d $FONPATH3 ] -then - FONPATH=$FONPATH3 -elif [ -d $FONPATH4 ] -then - FONPATH=$FONPATH4 -else - echo "=== Enter [fonpath] or leave [blank] for default to '.'" - read -p ">>> " FONPATH - echo "" - if [ ! "$FONPATH" ] - then - FONPATH=. - fi -fi - -if [ ! -d "$FONPATH" ] -then - echo "××× [$FONPATH] not exist! Exit now. ***" - exit -else - echo "√√√ FONPATH = $FONPATH" -fi - -pushd $FONPATH -echo "*** Starting from [`pwd`] ***" -echo "" - -# for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 -ls -F | grep '/$' | grep -v 'node_modules' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 -do - echo "======== entering [$FONPATH/$org] ========" - echo "" - cd "$org"; - for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 - do - if [ -d "$repo/.git" ] - then - echo "---- git pulling [`pwd`/$repo] ----" - cd "$repo" - git pull --all - echo "" - cd .. - fi - done - cd .. -done -popd diff --git a/git-pull-recursive.bat b/git-pull-recursive.bat index 863f346..124ae44 100644 --- a/git-pull-recursive.bat +++ b/git-pull-recursive.bat @@ -39,20 +39,40 @@ pushd %FONPATH% echo *** Starting from [%CD%] *** echo; -for /d /r %%r in (*) do ( - @REM @ if not "%%r" == ".vscode" ( - echo "%%r" | findstr "node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl" >NUL || ( - if exist "%%r\.git" ( - pushd "%%r" - echo ---- git pulling [%%r] ---- - git pull --all +@ if "%2" == "hier" ( + @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 ) + for /d %%o in (*) do ( + @ if not "%%o" == ".vscode" ( + echo ======== entering [%FONPATH%\%%o] ======== echo; + pushd %%o + for /d %%g in (*) do ( + if exist "%%g\.git" ( + pushd %%g + echo ---- git pulling [%FONPATH%\%%o\%%g] ---- + git pull --all + echo; + popd + ) + ) popd ) ) +) else ( + for /d /r %%r in (*) do ( + @REM @ if not "%%r" == ".vscode" ( + echo "%%r" | findstr "node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl" >NUL || ( + if exist "%%r\.git" ( + pushd "%%r" + echo ---- git pulling [%%r] ---- + git pull --all + echo; + popd + ) + ) + ) ) - popd :END diff --git a/git-pull-recursive.sh b/git-pull-recursive.sh index e18be23..b4474a3 100755 --- a/git-pull-recursive.sh +++ b/git-pull-recursive.sh @@ -42,15 +42,39 @@ pushd $FONPATH echo "*** Starting from [`pwd`] ***" echo "" -find . -mindepth 1 -maxdepth 3 -type d -name '[^.]*' | grep -E -v 'node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl' | while read repo -do - if [ -d "$repo/.git" ] - then - echo "---- git pulling [$repo] ----" - pushd "$repo" - git pull --all +if [ "$2" == 'hier' ] +then + # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 + ls -F | grep '/$' | grep -v 'node_modules' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 + do + echo "======== entering [$FONPATH/$org] ========" echo "" - popd - fi -done + cd "$org"; + for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 + do + if [ -d "$repo/.git" ] + then + echo "---- git pulling [`pwd`/$repo] ----" + cd "$repo" + git pull --all + echo "" + cd .. + fi + done + cd .. + done +else + find . -mindepth 1 -maxdepth 3 -type d -name '[^.]*' | grep -E -v 'node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl' | while read repo + do + if [ -d "$repo/.git" ] + then + echo "---- git pulling [$repo] ----" + pushd "$repo" + git pull --all + echo "" + popd + fi + done +fi + popd diff --git a/git-push-all.bat b/git-push-all.bat deleted file mode 100644 index d7ae84c..0000000 --- a/git-push-all.bat +++ /dev/null @@ -1,74 +0,0 @@ -@echo off - -@REM 首先清除可能残留的变量 -set FONPATH= - -set FONPATH1=D:\faronear -set FONPATH2=C:\faronear -set FONPATH3=%HOMEDRIVE%%HOMEPATH%\faronear - -@ if not "" == "%1" ( - set FONPATH=%1 -) else ( - echo *** Testing Path [%FONPATH1%] [%FONPATH2%] [%FONPATH3%] - if exist "%FONPATH1%" ( - set FONPATH=%FONPATH1% - ) else if exist "%FONPATH2%" ( - set FONPATH=%FONPATH2% - ) else if exist "%FONPATH3%" ( - set FONPATH=%FONPATH3% - ) else ( - echo === none of the testing path is valid. - echo === Enter [fonpath] or leave [blank] for default to '.' - set /p FONPATH=">>> " - echo; - if "" == "%FONPATH%" ( - set FONPATH=. - ) - ) -) - -if not exist "%FONPATH%" ( - echo ××× [%FONPATH%] not exist! Exit now. *** - @ GOTO END -) else ( - echo √√√ FONPATH = %FONPATH% -) - -pushd %FONPATH% -echo *** Starting from [%CD%] *** -echo; - -echo === Enter [commit message] or [leave blank] for default to 'updated' -set /p COMMIT_MESSAGE=">>> " -@ if "" == "%COMMIT_MESSAGE%" ( - set COMMIT_MESSAGE="updated" -) -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 ) - -for /d %%o in (*) do ( - @ if not "%%o" == ".vscode" ( - echo ======== entering [%FONPATH%\%%o] ======== - echo; - pushd "%%o" - for /d %%g in (*) do ( - if exist %%g\.git ( - pushd "%%g" - echo ---- git commit and push [%FONPATH%\%%o\%%g] ---- - git add . && git commit -m "%COMMIT_MESSAGE%" && git push - echo; - popd - ) - ) - popd - ) -) - -popd - -:END - -pause - diff --git a/git-push-all.sh b/git-push-all.sh deleted file mode 100755 index 1624948..0000000 --- a/git-push-all.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash - -FONPATH1=/faronear -FONPATH2=~/faronear.git -FONPATH3=~/faronear -FONPATH4=/mnt/d/faronear - -if [ "$1" ] -then - FONPATH=$1 -elif [ -d $FONPATH1 ] -then - FONPATH=$FONPATH1 -elif [ -d $FONPATH2 ] -then - FONPATH=$FONPATH2 -elif [ -d $FONPATH3 ] -then - FONPATH=$FONPATH3 -elif [ -d $FONPATH4 ] -then - FONPATH=$FONPATH4 -else - echo "=== Enter [fonpath] or leave [blank] for default to '.'" - read -p ">>> " FONPATH - echo "" - if [ ! "$FONPATH" ] - then - FONPATH=. - fi -fi - -if [ ! -d "$FONPATH" ] -then - echo "××× [$FONPATH] not exist! Exit now. ***" - exit -else - echo "√√√ FONPATH = $FONPATH" -fi - -pushd $FONPATH -echo "*** Starting from [`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 ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 -ls -F | grep '/$' | grep -v 'node_modules' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 -do - echo "======== entering [$FONPATH/$org] ========" - echo "" - cd "$org"; - for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 - do - if [ -d "$repo/.git" ] - then - echo "---- git commit & push [`pwd`/$repo] ----" - pushd "$repo" - git add . && git commit -m "$COMMIT_MESSAGE" && git push - echo "" - popd - fi - done - cd .. -done -popd diff --git a/git-push-recursive.bat b/git-push-recursive.bat index 3cbe3fd..0a5b53e 100644 --- a/git-push-recursive.bat +++ b/git-push-recursive.bat @@ -46,20 +46,40 @@ set /p COMMIT_MESSAGE=">>> " ) echo; -for /d /r %%r in (*) do ( - @REM @ if not "%%r" == ".vscode" ( - echo "%%r" | findstr "node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl" >NUL || ( - if exist "%%r\.git" ( - pushd "%%r" - echo ---- git commit and push [%%r] ---- - git add . && git commit -m "%COMMIT_MESSAGE%" && git push +@ if "%2" == "hier" ( + @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 ) + for /d %%o in (*) do ( + @ if not "%%o" == ".vscode" ( + echo ======== entering [%FONPATH%\%%o] ======== echo; + pushd "%%o" + for /d %%g in (*) do ( + if exist %%g\.git ( + pushd "%%g" + echo ---- git commit and push [%FONPATH%\%%o\%%g] ---- + git add . && git commit -m "%COMMIT_MESSAGE%" && git push + echo; + popd + ) + ) popd ) ) +) else ( + for /d /r %%r in (*) do ( + @REM @ if not "%%r" == ".vscode" ( + echo "%%r" | findstr "node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl" >NUL || ( + if exist "%%r\.git" ( + pushd "%%r" + echo ---- git commit and push [%%r] ---- + git add . && git commit -m "%COMMIT_MESSAGE%" && git push + echo; + popd + ) + ) + ) ) - popd :END diff --git a/git-push-recursive.sh b/git-push-recursive.sh index 05daee1..0c1155b 100755 --- a/git-push-recursive.sh +++ b/git-push-recursive.sh @@ -20,7 +20,6 @@ then elif [ -d $FONPATH4 ] then FONPATH=$FONPATH4 - else echo "=== Enter [fonpath] or leave [blank] for default to '.'" read -p ">>> " FONPATH @@ -51,15 +50,39 @@ then fi echo "" -find . -mindepth 1 -maxdepth 3 -type d -name '[^.]*' | grep -E -v 'node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl' | while read repo -do - if [ -d "$repo/.git" ] - then - echo "---- git commit & push [$repo] ----" - pushd "$repo" - git add . && git commit -m "$COMMIT_MESSAGE" && git push +if [ "$2" == 'hier' ] +then + # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 + ls -F | grep '/$' | grep -v 'node_modules' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 + do + echo "======== entering [$FONPATH/$org] ========" echo "" - popd - fi -done + cd "$org"; + for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 + do + if [ -d "$repo/.git" ] + then + echo "---- git commit & push [`pwd`/$repo] ----" + pushd "$repo" + git add . && git commit -m "$COMMIT_MESSAGE" && git push + echo "" + popd + fi + done + cd .. + done +else + find . -mindepth 1 -maxdepth 3 -type d -name '[^.]*' | grep -E -v 'node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl' | while read repo + do + if [ -d "$repo/.git" ] + then + echo "---- git commit & push [$repo] ----" + pushd "$repo" + git add . && git commit -m "$COMMIT_MESSAGE" && git push + echo "" + popd + fi + done +fi + popd diff --git a/npm-boot-all.bat b/npm-boot-all.bat deleted file mode 100644 index 54c00e4..0000000 --- a/npm-boot-all.bat +++ /dev/null @@ -1,68 +0,0 @@ -@echo off - -@REM 首先清除可能残留的变量 -set FONPATH= - -set FONPATH1=D:\faronear -set FONPATH2=C:\faronear -set FONPATH3=%HOMEDRIVE%%HOMEPATH%\faronear - -@ if not "" == "%1" ( - set FONPATH=%1 -) else ( - echo *** Testing Path [%FONPATH1%] [%FONPATH2%] [%FONPATH3%] - if exist "%FONPATH1%" ( - set FONPATH=%FONPATH1% - ) else if exist "%FONPATH2%" ( - set FONPATH=%FONPATH2% - ) else if exist "%FONPATH3%" ( - set FONPATH=%FONPATH3% - ) else ( - echo === none of the testing path is valid. - echo === Enter [fonpath] or leave [blank] for default to '.' - set /p FONPATH=">>> " - echo; - if "" == "%FONPATH%" ( - set FONPATH=. - ) - ) -) - -if not exist "%FONPATH%" ( - echo ××× [%FONPATH%] not exist! Exit now. *** - @ GOTO END -) else ( - echo √√√ FONPATH = %FONPATH% -) - -pushd %FONPATH% -echo *** Starting from [%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 ) - -for /d %%o in (*) do ( - @ if not "%%o" == ".vscode" ( - 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 [%FONPATH%\%%o\%%g] ---- - npm run boot - echo; - popd - ) - ) - ) - popd - ) -) - -popd - -:END - -pause diff --git a/npm-boot-all.sh b/npm-boot-all.sh deleted file mode 100755 index 946e61d..0000000 --- a/npm-boot-all.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash - -FONPATH1=/faronear -FONPATH2=~/faronear.git -FONPATH3=~/faronear -FONPATH4=/mnt/d/faronear - -if [ "$1" ] -then - FONPATH=$1 -elif [ -d $FONPATH1 ] -then - FONPATH=$FONPATH1 -elif [ -d $FONPATH2 ] -then - FONPATH=$FONPATH2 -elif [ -d $FONPATH3 ] -then - FONPATH=$FONPATH3 -elif [ -d $FONPATH4 ] -then - FONPATH=$FONPATH4 -else - echo "=== Enter [fonpath] or leave [blank] for default to '.'" - read -p ">>> " FONPATH - echo "" - if [ ! "$FONPATH" ] - then - FONPATH=. - fi -fi - -if [ ! -d "$FONPATH" ] -then - echo "××× [$FONPATH] not exist! Exit now. ***" - exit -else - echo "√√√ FONPATH = $FONPATH" -fi - -pushd $FONPATH -echo "*** Starting from [`pwd`] ***" -echo "" - -# for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 -ls -F | grep '/$' | grep -v '=' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 -do - echo "======== entering [$FONPATH/$org] ========" - echo "" - cd "$org"; - for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 - do - if ( [ -f "$repo/package.json" ] && grep -q '"boot"' "$repo/package.json" ) - then - echo "<<<< npm booting: [$org/$repo] <<<<" - cd "$repo" - npm run boot - echo ">>>> npm booted: [$org/$repo] >>>>" - echo "" - cd .. - fi - done - cd ..; -done -popd diff --git a/npm-boot-recursive.bat b/npm-boot-recursive.bat index fcd47b3..2ed575a 100644 --- a/npm-boot-recursive.bat +++ b/npm-boot-recursive.bat @@ -39,16 +39,39 @@ pushd %FONPATH% echo *** Starting from [%CD%] *** echo; -for /d /r %%r in (*) do ( - @REM @ if not "%%r" == "node_modules" ( - echo "%%r" | findstr "node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl" >NUL || ( - if exist "%%r\package.json" ( - findstr "\"boot\"" "%%r\package.json" >NUL && ( - pushd %%r - echo ---- npm booting [%FONPATH%\%%r] ---- - npm run boot - echo; - popd +@ if "%2" == "hier" ( + @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 ) + for /d %%o in (*) do ( + @ if not "%%o" == ".vscode" ( + 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 [%FONPATH%\%%o\%%g] ---- + npm run boot + echo; + popd + ) + ) + ) + popd + ) + ) +) else ( + for /d /r %%r in (*) do ( + @REM @ if not "%%r" == "node_modules" ( + echo "%%r" | findstr "node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl" >NUL || ( + if exist "%%r\package.json" ( + findstr "\"boot\"" "%%r\package.json" >NUL && ( + pushd %%r + echo ---- npm booting [%FONPATH%\%%r] ---- + npm run boot + echo; + popd + ) ) ) ) diff --git a/npm-boot-recursive.sh b/npm-boot-recursive.sh index 1ecb9ca..fb4881f 100755 --- a/npm-boot-recursive.sh +++ b/npm-boot-recursive.sh @@ -42,19 +42,44 @@ pushd $FONPATH echo "*** Starting from [`pwd`] ***" echo "" -find . -mindepth 1 -maxdepth 3 -type d -name '[^.]*' | grep -E -v 'node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl' | while read repo -do - if ( [ -f "$repo/package.json" ] && grep -q '"boot"' "$repo/package.json" ) - then +if [ "$2" == 'hier' ] +then + # for org in `ls -F | grep '/$' | grep -v '~'` ## 首先过滤出所有子目录,然后过滤出所有不含 ~ 的子目录。注意 for ??? in `ls ???` 是按照空行以及空格进行分割的,因此最后筛选出的目录名不能含有空格,否则就被分割成多个了。 + ls -F | grep '/$' | grep -v '=' | while read org ## 换用这种方法,可以成功过滤出含有空格的完整目录名 + do + echo "======== entering [$FONPATH/$org] ========" echo "" - echo "---- npm booting: [$repo] ----" - echo "" - pushd "$repo" - npm run boot - echo "" - echo "---- npm booted: [$repo] ----" - echo "" - popd - fi -done + cd "$org"; + for repo in * ## for ??? in * 是分割成一个个目录名的,即使目录名含有空格 + do + if ( [ -f "$repo/package.json" ] && grep -q '"boot"' "$repo/package.json" ) + then + echo "<<<< npm booting: [$org/$repo] <<<<" + cd "$repo" + npm run boot + echo ">>>> npm booted: [$org/$repo] >>>>" + echo "" + cd .. + fi + done + cd ..; + done +else + find . -mindepth 1 -maxdepth 3 -type d -name '[^.]*' | grep -E -v 'node_modules uni_modules .deploy_git .git .svn .vscode unpackage _webroot _logstore _datasotre _archive _filestore _ssl' | while read repo + do + if ( [ -f "$repo/package.json" ] && grep -q '"boot"' "$repo/package.json" ) + then + echo "" + echo "---- npm booting: [$repo] ----" + echo "" + pushd "$repo" + npm run boot + echo "" + echo "---- npm booted: [$repo] ----" + echo "" + popd + fi + done +fi + popd diff --git a/npm-clear-all.bat b/npm-clear-all.bat deleted file mode 100644 index 245f3c0..0000000 --- a/npm-clear-all.bat +++ /dev/null @@ -1,68 +0,0 @@ -@echo off - -@REM 首先清除可能残留的变量 -set FONPATH= - -set FONPATH1=D:\faronear -set FONPATH2=C:\faronear -set FONPATH3=%HOMEDRIVE%%HOMEPATH%\faronear - -@ if not "" == "%1" ( - set FONPATH=%1 -) else ( - echo *** Testing Path [%FONPATH1%] [%FONPATH2%] [%FONPATH3%] - if exist "%FONPATH1%" ( - set FONPATH=%FONPATH1% - ) else if exist "%FONPATH2%" ( - set FONPATH=%FONPATH2% - ) else if exist "%FONPATH3%" ( - set FONPATH=%FONPATH3% - ) else ( - echo === none of the testing path is valid. - echo === Enter [fonpath] or leave [blank] for default to '.' - set /p FONPATH=">>> " - echo; - if "" == "%FONPATH%" ( - set FONPATH=. - ) - ) -) - -if not exist "%FONPATH%" ( - echo ××× [%FONPATH%] not exist! Exit now. *** - @ GOTO END -) else ( - echo √√√ FONPATH = %FONPATH% -) - -pushd %FONPATH% -echo *** Starting from [%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 ) - -for /d %%o in (*) do ( - @REM windows的链接文件会造成路径错误,从而终止该循环,从而导致下一轮乃至所有循环的工作目录错误。因此要过滤掉 .vscode 这个符号链接目录。 - @ if not "%%o" == ".vscode" ( - echo ======== entering [%FONPATH%\%%o] ======== - echo; - pushd %%o - for /d %%g in (*) do ( - if exist %%g\node_modules ( - pushd %%g - echo ---- Deleting [%%g\node_modules] ---- - rd /s /q node_modules - echo; - popd - ) - ) - popd - ) -) - -popd - -pause -@GOTO END - -:END