1# vi: set ft=conf
 2
 3# convert crlf to lf on windows
 4[windows] dos2unix tree1.txt tree2.txt tree3.txt tree4.txt
 5
 6# start soft serve
 7exec soft serve &
 8# wait for SSH server to start
 9ensureserverrunning SSH_PORT
10
11# create a repo
12soft repo create repo1
13
14# clone repo
15git clone ssh://localhost:$SSH_PORT/repo1 repo1
16
17# create some files, commits, tags...
18mkfile ./repo1/README.md '# Hello'
19mkfile ./repo1/b.md 'hi'
20mkfile ./repo1/.hidden ''
21mkdir ./repo1/folder
22mkdir ./repo1/.folder
23mkfile ./repo1/folder/aa.md 'hello'
24git -C repo1 add -A
25git -C repo1 commit -m 'first'
26git -C repo1 push origin HEAD
27
28# print root tree
29soft repo tree repo1
30cmp stdout tree1.txt
31
32# print folder tree
33soft repo tree repo1 folder
34cmp stdout tree2.txt
35
36# print file tree with revision
37soft repo tree repo1 master b.md
38cmp stdout tree3.txt
39
40# print tree of folder that does not exist
41! soft repo tree repo1 folder2
42! stdout .
43stderr 'file not found'
44
45# print tree of bad revision
46! soft repo tree repo1 badrev folder
47! stdout .
48stderr 'revision does not exist'
49
50# test unicode file name issue #457
51soft repo create repo4
52git clone ssh://localhost:$SSH_PORT/repo4 repo4
53mkfile ./repo4/🍕.md '🍕'
54git -C repo4 add -A
55git -C repo4 commit -m 'unicode'
56git -C repo4 push origin HEAD
57
58# print root tree
59soft repo tree repo4
60cmp stdout tree4.txt
61
62# stop the server
63[windows] stopserver
64
65-- tree1.txt --
66drwxrwxrwx	-	 folder
67-rw-r--r--	-	 .hidden
68-rw-r--r--	7 B	 README.md
69-rw-r--r--	2 B	 b.md
70-- tree2.txt --
71-rw-r--r--	5 B	 aa.md
72-- tree3.txt --
73-rw-r--r--	2 B	 b.md
74-- tree4.txt --
75-rw-r--r--	4 B	 🍕.md