-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmake.sh
executable file
·130 lines (115 loc) · 2.17 KB
/
make.sh
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
123
124
125
126
127
128
129
130
#!/bin/bash
SCRIPTNAME=$(basename "$0")
SCRIPTPATH=$(dirname "$0")
DESTPATH=${SCRIPTPATH}/..
ALLSOURCES="\
netpoldo-deb8 \
netpoldo-deb7 \
netpoldo-deb6 \
netpoldo-1404 \
netpoldo-1204 \
netpoldo-1004 \
"
REQUIRED="\
uic \
"
ARCHS="32 64"
function test_source_dir {
if [ ! -d "$1" ]; then
echo "ERROR: Source path '$1' does not exist. Aborting..." >&2
exit 5
fi
}
function test_sources {
[ $# -eq 0 ] && SOURCES=${ALLSOURCES}
while [ $# -gt 0 ]; do
SELMASK="${1:-*}"
for SRCDIR in ${ALLSOURCES}; do
case "${SRCDIR}" in
(${SELMASK})
test_source_dir "${SCRIPTPATH}/${SRCDIR}"
SOURCES="${SOURCES} ${SRCDIR}"
;;
esac
done
shift
done
if [ -z "${SOURCES}" ]; then
echo "ERROR: No valid target specified" >&2
echo "Valid targets: ${ALLSOURCES}" >&2
exit 2
fi
}
function netpoldo_clean {
test_sources "$@"
for npdir in ${SOURCES}; do
uic clean -v ${SCRIPTPATH}/${npdir}
rm -f ${SCRIPTPATH}/${npdir}/uictpl.md5 ${SCRIPTPATH}/${npdir}_*.md5 ${SCRIPTPATH}/${npdir}_*.tar.bz2
done
}
function netpoldo_make {
test_sources "$@"
for npdir in ${SOURCES}; do
for arch in ${ARCHS}; do
rm -rf ${SCRIPTPATH}/${npdir}/chroot
uic create --variant ${arch} -v ${SCRIPTPATH}/${npdir}
uic build -v ${SCRIPTPATH}/${npdir}
done
done
}
function netpoldo_pack {
test_sources "$@"
for npdir in ${SOURCES}; do
uic pack -v -o ${SCRIPTPATH} ${SCRIPTPATH}/${npdir}
done
}
function netpoldo_fake {
test_sources "$@"
for npdir in ${SOURCES}; do
for arch in ${ARCHS}; do
echo "would process: ${npdir} --variant ${arch}"
done
done
}
# check for required tools
for REQTOOL in ${REQUIRED}; do
if ! which ${REQTOOL} > /dev/null; then
echo "ERROR: ${REQTOOL} is not installed" >&2
exit 2
fi
done
# eat action parameter
ACTION="${1}"
shift
# eat optional architecture parameter
case "${1}" in
32|64) ARCHS="${1}"
shift
;;
*) ARCHS="32 64"
;;
esac
case "${ACTION}" in
clean)
netpoldo_clean "$@"
;;
make)
netpoldo_make "$@"
;;
pack)
netpoldo_pack "$@"
;;
fake)
netpoldo_fake "$@"
;;
all)
netpoldo_clean "$@"
netpoldo_make "$@"
netpoldo_pack "$@"
;;
*)
echo "Usage: make.sh {clean|make|pack|fake|all}"
exit 1
;;
esac
exit 0