merge *-all.* into *-recursive.*

This commit is contained in:
陆柯 2023-01-12 19:18:22 +08:00
parent 3dfa327b22
commit 6555284efc
13 changed files with 196 additions and 540 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
)
)
)
)

View File

@ -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

View File

@ -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