脚本运行环境:Git Bash
系统环境:Windows 10 Pro 1709
VSS版本:Microsoft Visual SourceSafe 2005
我的VSS工作目录结构如下:
D:work
--vss
----project1
------src
------README.md
------ ......
----project2
------doc
------src
------README.md
------ ......
----project3
------ ......
脚本代码:
1 #!/bin/bash 2 3 git config --global user.name "Allen" 4 git config --global user.email [email protected] 5 6 # Init params 7 namespace=VssProjects # Group Name 8 namespaceId=10 # Group Id 9 rootPath=/d/work/vss # VSS work path 10 index=0 11 folderList=[] 12 13 # Each folders 14 cd $rootPath 15 for i in $(ls $rootPath) 16 do 17 echo $index $i 18 folderList[index]=$i 19 index=`expr $index + 1` 20 done 21 22 # Print folders length 23 echo ${#folderList[@]} 24 25 # Git Init 26 for dirName in ${folderList[*]} 27 do 28 workPath=$rootPath/$dirName #项目工作目录 29 projectName=$dirName # 项目名称 30 data='{"name":"replacement","visibility":"private","namespace_id":namespaceId,"path":"replacement"}' # 待提交的JSON数据 31 postData=${data//replacement/$projectName} # 全部替换 32 postData=${data/namespaceId/$namespaceId} # 只替换一次 33 echo $postData 34 35 # Gitlab Create Projects 36 curl --header "Private-Token: your private token" 37 -H "Accept: application/json" 38 -H "Content-type: application/json" 39 -X POST 40 -d $postData 41 http://git.domain.com/api/v4/projects 42 43 # Git repository init & push 44 cd $workPath 45 git init 46 git remote add origin http://username:[email protected]/$namespace/$projectName.git 47 touch README.md 48 git add README.md 49 git add . 50 git commit -m "Init version" 51 git push -u origin master 52 done