Skip to content

Commit fbfd954

Browse files
chore: added a script to fetch and arrange files from origin lua repo
1 parent 6bf5241 commit fbfd954

1 file changed

Lines changed: 104 additions & 0 deletions

File tree

fetch_origin.sh

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#!/usr/bin/env bash
2+
3+
PROGNAME=${0##*/}
4+
VERSION="0.1"
5+
6+
origin=https://github.com/lua/lua
7+
branch=master
8+
dir=origin
9+
10+
fetch_origin() {
11+
git clone --depth 1 ${origin} ${dir}
12+
mkdir ${dir}/src ${dir}/include
13+
mv ${dir}/*.h include/.
14+
mv ${dir}/*.c src/.
15+
16+
return
17+
}
18+
19+
clean_up() { # Perform pre-exit housekeeping
20+
rm -rf ${dir}
21+
return
22+
}
23+
24+
error_exit() {
25+
echo -e "${PROGNAME}: ${1:-"Unknown Error"}" >&2
26+
clean_up
27+
exit 1
28+
}
29+
30+
graceful_exit() {
31+
clean_up
32+
exit
33+
}
34+
35+
signal_exit() { # Handle trapped signals
36+
case $1 in
37+
INT)
38+
error_exit "Program interrupted by user"
39+
;;
40+
TERM)
41+
echo -e "\n$PROGNAME: Program terminated" >&2
42+
graceful_exit
43+
;;
44+
*)
45+
error_exit "$PROGNAME: Terminating on unknown signal"
46+
;;
47+
esac
48+
}
49+
50+
usage() {
51+
echo -e "Usage: $PROGNAME [-h|--help] [-o|--origin] [-b|--branch]"
52+
}
53+
54+
help_message() {
55+
cat <<-_EOF_
56+
$PROGNAME ver. $VERSION
57+
58+
Fetch from lua origin and auto arrange files
59+
60+
$(usage)
61+
62+
Options:
63+
-h, --help Display this help message and exit.
64+
-o, --origin Origin to fetch
65+
-b, --branch Branch to fetch
66+
67+
_EOF_
68+
return
69+
}
70+
71+
# Trap signals
72+
trap "signal_exit TERM" TERM HUP
73+
trap "signal_exit INT" INT
74+
75+
# Parse command-line
76+
while [[ -n $1 ]]; do
77+
case $1 in
78+
-h | --help)
79+
help_message
80+
graceful_exit
81+
;;
82+
-o | --origin)
83+
origin=$2
84+
echo "Fetch from $origin"
85+
;;
86+
-b | --branch)
87+
branch=$2
88+
echo "On branch $branch"
89+
;;
90+
-* | --*)
91+
usage
92+
error_exit "Unknown option $1"
93+
;;
94+
*) ;;
95+
96+
esac
97+
shift
98+
done
99+
100+
# Main logic
101+
102+
fetch_origin
103+
104+
graceful_exit

0 commit comments

Comments
 (0)