1# vi: set ft=conf
  2
  3# convert crlf to lf on windows
  4[windows] dos2unix readme.md branch_list.1.txt info.txt
  5
  6# start soft serve
  7exec soft serve &
  8# wait for server to start
  9waitforserver
 10
 11# create a repo
 12soft repo create repo1 -d 'description' -H -p -n 'repo11'
 13stderr 'Created repository repo1.*'
 14stdout ssh://localhost:$SSH_PORT/repo1.git
 15soft repo hidden repo1
 16stdout true
 17soft repo private repo1
 18stdout true
 19! exists $DATA_PATH/repos/repo1.git/git-daemon-export-ok
 20soft repo description repo1
 21stdout 'description'
 22readfile $DATA_PATH/repos/repo1.git/description 'description'
 23soft repo project-name repo1
 24stdout 'repo1'
 25
 26# clone repo
 27git clone ssh://localhost:$SSH_PORT/repo1 repo1
 28
 29# create some files, commits, tags...
 30mkfile ./repo1/README.md '# Project\nfoo'
 31git -C repo1 add -A
 32git -C repo1 commit -m 'first'
 33git -C repo1 tag v0.1.0
 34git -C repo1 push origin HEAD
 35git -C repo1 push origin HEAD --tags
 36
 37# create lfs files, use ssh git-lfs-transfer
 38git -C repo1 lfs install --local
 39git -C repo1 lfs track '*.png'
 40git -C repo1 lfs track '*.mp4'
 41mkfile ./repo1/foo.png 'foo'
 42mkfile ./repo1/bar.png 'bar'
 43git -C repo1 add -A
 44git -C repo1 commit -m 'lfs'
 45git -C repo1 push origin HEAD
 46
 47# info
 48soft repo info repo1
 49cmp stdout info.txt
 50
 51# list tags
 52soft repo tag list repo1
 53stdout 'v0.1.0'
 54
 55# delete tag
 56soft repo tag delete repo1 v0.1.0
 57soft repo tag list repo1
 58! stdout .
 59
 60# print tree
 61soft repo tree repo1
 62cp stdout tree.txt
 63grep '.gitattributes' tree.txt
 64grep 'README.md' tree.txt
 65grep 'foo.png' tree.txt
 66grep 'bar.png' tree.txt
 67
 68# cat blob
 69soft repo blob repo1 README.md
 70cmp stdout readme.md
 71
 72# cat blob that doesn't exist
 73! soft repo blob repo1 README.txt
 74! stdout .
 75stderr '.*revision does not exist.*'
 76
 77# check main branch
 78soft repo branch default repo1
 79stdout master
 80
 81# create a new branch
 82git -C repo1 checkout -b branch1
 83git -C repo1 push origin branch1
 84soft repo branch list repo1
 85cmp stdout branch_list.1.txt
 86
 87# change default branch
 88soft repo branch default repo1 branch1
 89soft repo branch default repo1
 90stdout branch1
 91
 92# cannot delete main branch
 93! soft repo branch delete repo1 branch1
 94
 95# delete other branch
 96soft repo branch delete repo1 master
 97soft repo branch list repo1
 98stdout branch1
 99
100# create a new user
101soft user create bar --key "$USER1_AUTHORIZED_KEY"
102
103# user create a repo
104usoft repo create repo2 -d 'description' -H -p -n 'repo2'
105stderr 'Created repository repo2.*'
106stdout ssh://localhost:$SSH_PORT/repo2.git
107usoft repo hidden repo2
108stdout true
109usoft repo private repo2
110stdout true
111! exists $DATA_PATH/repos/repo2.git/git-daemon-export-ok
112usoft repo description repo2
113stdout 'description'
114readfile $DATA_PATH/repos/repo2.git/description 'description'
115usoft repo project-name repo2
116stdout 'repo2'
117
118# user delete a repo
119usoft repo delete repo2
120! exists $DATA_PATH/repos/repo2.git
121
122# stop the server
123[windows] stopserver
124[windows] ! stderr .
125
126
127-- readme.md --
128# Project\nfoo
129-- branch_list.1.txt --
130branch1
131master
132-- info.txt --
133Project Name: repo11
134Repository: repo1
135Description: description
136Private: true
137Hidden: true
138Mirror: false
139Owner: admin
140Default Branch: master
141Branches:
142  - master
143Tags:
144  - v0.1.0