forked from AlDanial/cloc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
make_git_repo.bash
executable file
·122 lines (111 loc) · 2.84 KB
/
make_git_repo.bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/bin/bash
# 2018-04-06 Al Danial <[email protected]>
# Create in the current directory a git repository
# called 'GitTestRepo' and populate it with a few
# files over several commits. The repo is used to
# exercise some of cloc's git features.
G=`which git`
if test ! $G ; then
echo "git is unavailable, exit."
exit
fi
function git_init_config { # {{{
reponame=$1
git init --quiet "${reponame}"
cd "${reponame}"
# explicitly don't use --global; settings for this repo only
git config user.email "[email protected]"
git config user.name "Cloc Tester"
}
# 1}}}
function create_main_c { # {{{
fname=$1
N=$2
cat <<EO_001 > "${fname}"
/*
* gcc hello.c -o hello
*/
main (int argc, char *argv[])
{
printf("Hello. $N\n");
}
EO_001
}
# 1}}}
function create_py { # {{{
fname=$1
cat <<EO_002 > "${fname}"
#!/usr/bin/env python
print('hi')
EO_002
}
# 1}}}
function mod_py_A { # {{{
fname=$1
cat <<EO_003 > "${fname}"
#!/usr/bin/env python
print('hi')
print('hello')
EO_003
}
# 1}}}
function mod_py_B { # {{{
fname=$1
cat <<EO_004 > "${fname}"
#!/usr/bin/env python
# five
for i in range(5):
print('yo') # print
EO_004
}
# 1}}}
function git_add_commit { # {{{
fname=$1
comment=$2
taglabel=$3
git add "${fname}"
git commit --quiet -m "${comment}" "${fname}"
git tag "${taglabel}"
}
# 1}}}
function git_rm_commit { # {{{
fname=$1
comment=$2
taglabel=$3
git rm --quiet "${fname}"
git commit --quiet -m "${comment}" "${fname}"
git tag "${taglabel}"
}
# 1}}}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# main #
git_init_config GitTestRepo # side effect: cd into GitTestRepo
F1=main.c
F2='date;ls ?.c'
F3='$PWD.c'
F4="weird'name.c"
F5='ls -l .c'
F6='Weird"Name.c'
create_main_c $F1 1
create_main_c "$F2" 2
create_main_c $F3 3
create_main_c $F4 4
create_main_c "$F5" 5
create_main_c $F6 6
git_add_commit $F1 "added $F1" "Tag1"
git add 'date;ls ?.c'
git commit --quiet -m "${comment}" 'date;ls ?.c'
git tag "Tag2"
git_add_commit $F3 "added $F3" "Tag3"
git_add_commit $F4 "added $F4" "Tag4"
git add 'ls -l .c'
git commit --quiet -m "${comment}" 'ls -l .c'
git tag "Tag5"
git_add_commit $F6 "added $F6" "Tag6"
create_py hello.py
git_add_commit hello.py "add hello.py" "T2"
mod_py_A hello.py
git_add_commit hello.py "mod A" "T3"
mod_py_B hello.py
git_add_commit hello.py "mod B" "T4"
git_rm_commit main.c "using Python instead of C" "T5"