vscode同步代码到Linux服务器(sync_code.cmd)

echo off
@rem 1. %~nx0:该脚本文件名和扩展名; %~n0:该脚本文件名;%~x0:该脚本扩展名
set task_name=%~n0
@rem 1.获取该脚本第一个和第二个参数
set layer=%1
set is_get_diff_files=%2
@rem 1.LOCAL_SRC_HOME是在task.json文件中预设的路径
@rem 2.LINUX_SRC_HOME同样也是在task.json文件中预设的路径
cd %LOCAL_SRC_HOME%

if "%is_get_diff_files%" NEQ "True" goto :NEXT_STEP

echo [0]Get diff files list
@rem 1.拿到当前分支名并输入到curr_branch_name.txt中
git name-rev --name-only HEAD > curr_branch_name.txt
set /p CURR_BRANCH_NAME=0 merge_commit_info.txt

for /f "tokens=1 delims=_" %%i in (merge_commit_info.txt) do (
set txt=%%i
goto :Show
)
:Show
echo %txt% > last_merge_commit_id.txt

set /p LAST_MERGE_COMMIT_ID=0 diff_files_list.txt

:NEXT_STEP
echo [01]Make code dir
@rem SSH_HOST:环境变量
"%VSCODE_HOME%/plugins/dt/dtcenter/bin/ssh.exe" %SSH_HOST% "mkdir -p %LINUX_SRC_HOME%"

@rem -v, --verbose 详细模式输出
@rem -z, --compress 对备份的文件在传输时进行压缩处理
@rem -r, --recursive 对子目录以递归模式处理
@rem -t, --times 保持文件时间信息
@rem -o, --owner 保持文件属主信息
@rem -p, --perms 保持文件权限
@rem -g, --group 保持文件属组信息
@rem --delete 删除那些DST中SRC没有的文件
@rem --chmod
@rem --exclude-from=FILE 排除FILE中指定模式的文件
@rem %includePath% 使用入参 --include=PATTERN 指定需要传输的文件
@rem -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
echo [02]Sync code %layer%
if "%layer%" == "native" (
    @rem 1.--include:代表同步指定的文件或目录;--exclude:代表不同步的文件或目录
    "%VSCODE_HOME%/plugins/dt/dtcenter/bin/rsync.exe" -a -v -z -t -o -g -p --delete --chmod=u=rwx --chmod=g=r --chmod=o=r --include='itf/control/' --include='src/' --exclude='itf/*' -e "'%VSCODE_HOME%/plugins/dt/dtcenter/bin/ssh.exe'" ./ %SSH_HOST%:%LINUX_SRC_HOME%
    )

echo on

 

你可能感兴趣的:(工具类)