1 |
Author: rieggepp |
2 |
Date: Tue Jun 17 12:14:44 2008 |
3 |
New Revision: 115 |
4 |
|
5 |
Added: |
6 |
trunk/src/gnap_shared.sh |
7 |
|
8 |
Log: |
9 |
This file is from Summer of Code 2007 patch set, forgot to add it. |
10 |
|
11 |
Added: trunk/src/gnap_shared.sh |
12 |
============================================================================== |
13 |
--- (empty file) |
14 |
+++ trunk/src/gnap_shared.sh Tue Jun 17 12:14:44 2008 |
15 |
@@ -0,0 +1,107 @@ |
16 |
+NAME=$(basename "$0") |
17 |
+ |
18 |
+case ${NAME} in |
19 |
+ gnap_make ) GNAP_PRODUCT="Build";; |
20 |
+ gnap_overlay ) GNAP_PRODUCT="Overlay";; |
21 |
+ gnap_remaster ) GNAP_PRODUCT="Remaster";; |
22 |
+ * ) GNAP_PRODUCT="Something";; |
23 |
+esac |
24 |
+ |
25 |
+GNAP_STAGE3FILE=${GNAP_STAGE3FILE:-"${GNAP_LIBDIR}/gnap-stage3seed.tar.bz2"} |
26 |
+GNAP_SNAPSHOTFILE=${GNAP_SNAPSHOTFILE:-"${GNAP_LIBDIR}/gnap-portagesnapshot.tar.bz2"} |
27 |
+GNAP_SPECS=${GNAP_SPECS:-"${GNAP_LIBDIR}/gnap-specs.tar.bz2"} |
28 |
+GNAP_CORE=${GNAP_CORE:-"${GNAP_LIBDIR}/gnap-core.tar"} |
29 |
+GNAP_MBR=${GNAP_MBR:-"${GNAP_LIBDIR}/mbr/mbr.bin"} |
30 |
+GNAP_EXTDIR=${GNAP_EXTDIR:-"${GNAP_LIBDIR}/extensions"} |
31 |
+GNAP_BASEFS=${GNAP_BASEFS:-"${GNAP_LIBDIR}/gnap-basefs.tar.bz2"} |
32 |
+ |
33 |
+GNAP_FORCEYES=${GNAP_FORCEYES:-0} |
34 |
+ |
35 |
+#CONTINUED=0 |
36 |
+TEMPDIR='' |
37 |
+LOOP='' |
38 |
+ |
39 |
+G=$'\e[32;01m' # green |
40 |
+B=$'\e[31;01m' # red |
41 |
+N=$'\e[0m' # neutral |
42 |
+W=$'\e[33;01m' # yellow |
43 |
+K=$'\e[34;01m' # blue |
44 |
+C="$[$(set -- $(stty size 2>/dev/null); echo ${2}) - 7]" # end of line helper |
45 |
+E=$'\e['${C}'G' # end of line |
46 |
+ |
47 |
+ginfo() { |
48 |
+ echo -e " ${G}*${N} ${*}" |
49 |
+} |
50 |
+ |
51 |
+gwarn() { |
52 |
+ echo -e " ${W}*${N} ${*}" |
53 |
+} |
54 |
+ |
55 |
+gdie() { |
56 |
+ echo -e " ${B}*${N} ${*}" |
57 |
+ cleanup |
58 |
+ exit 1 |
59 |
+} |
60 |
+ |
61 |
+ |
62 |
+gmkdir() { |
63 |
+ mkdir -p "$1" |
64 |
+ gtest continued $? "Failed to create \"$1\"." |
65 |
+} |
66 |
+ |
67 |
+gconfirm() { |
68 |
+ if [[ "${GNAP_FORCEYES}" -eq 1 ]]; then |
69 |
+ gwarn "${*} forced to yes" |
70 |
+ else |
71 |
+ read -ep " ${W}*${N} ${*} [N]: " answer |
72 |
+ [[ "${answer}" != 'y' && "${answer}" != 'Y' ]] && \ |
73 |
+ gdie "${GNAP_PRODUCT} aborted!" |
74 |
+ fi |
75 |
+} |
76 |
+ |
77 |
+gbegin() { |
78 |
+# [[ "${CONTINUED}" -eq 1 ]] && gdie "BUG triggered by gbegin()" |
79 |
+ |
80 |
+ echo -ne " ${G}*${N} ${*}..." |
81 |
+# CONTINUED=1 |
82 |
+} |
83 |
+ |
84 |
+gtest() { |
85 |
+# # TODO: Remove this after removing all "gtest continued" |
86 |
+# if [[ "${#}" -gt 0 && "${1}" == 'continued' ]]; then |
87 |
+# shift |
88 |
+# fi |
89 |
+ CONTINUED=0 |
90 |
+ if [[ "${#}" -gt 0 && "${1}" == 'continued' ]]; then |
91 |
+ CONTINUED=1 |
92 |
+ shift |
93 |
+ fi |
94 |
+ |
95 |
+ if [[ "${#}" -eq 0 || "${1}" -eq 0 ]]; then |
96 |
+ if [[ "${CONTINUED}" -eq 0 ]]; then |
97 |
+ echo -e "${E} ${K}[ ${G}ok${K} ]${N}" |
98 |
+ fi |
99 |
+ else |
100 |
+ echo -e "${E} ${K}[ ${B}!!${K} ]${N}" |
101 |
+ if [[ "${#}" -ge 2 ]]; then |
102 |
+ shift |
103 |
+ echo -en " ${B}*${N} ${*}" |
104 |
+ echo -e "${E} ${K}[ ${B}!!${K} ]${N}" |
105 |
+ fi |
106 |
+ gdie "${GNAP_PRODUCT} failed, try man ${NAME} for more help" |
107 |
+ fi |
108 |
+} |
109 |
+ |
110 |
+cleanup() { |
111 |
+ if [[ -n "${LOOP}" ]]; then |
112 |
+ gbegin 'Unmounting loop filesystem' |
113 |
+ umount "${LOOP}" && losetup -d "${LOOP}" |
114 |
+ gtest $? "Failed to unmount ${LOOP}" |
115 |
+ fi |
116 |
+ if [[ -d "${TEMPDIR}" ]]; then |
117 |
+ gbegin 'Cleaning temporary directories' |
118 |
+ rm -rf "${TEMPDIR}" |
119 |
+ gtest $? "Failed to remove ${DIRTOREMOVE}" |
120 |
+ TEMPDIR='' |
121 |
+ fi |
122 |
+} |
123 |
-- |
124 |
gnap-dev@l.g.o mailing list |