|
1 | | -#!/bin/bash |
| 1 | +#!/bin/sh |
2 | 2 | #deb-build.sh |
3 | 3 |
|
4 | | -VER="0.4" |
5 | | -GREEN="\033[1;32m" |
6 | | -RED="\033[0;31m" |
7 | | -YELLOW="\033[1;33m" |
8 | | -ENDCOLOR="\033[0m" |
9 | | - |
| 4 | +VER="0.5" |
10 | 5 | DEFPACK="gzip" |
11 | 6 |
|
12 | 7 | tproc=`basename $0` |
13 | | -echo -e $GREEN"$tproc version $VER"$ENDCOLOR |
| 8 | +echo "$tproc version $VER" |
14 | 9 | echo "" |
15 | 10 |
|
16 | 11 | usage() |
17 | 12 | { |
18 | 13 | tproc=`basename $0` |
19 | | - echo -e $YELLOW"usage:"$ENDCOLOR |
20 | | - echo -e $GREEN" sudo bash $tproc [gzip|bzip2|lzma]"$ENDCOLOR |
| 14 | + echo "usage:" |
| 15 | + echo " sudo bash $tproc [options]" |
| 16 | + echo " options:" |
| 17 | + echo " -c [gzip|bzip2|lzma] - compress method" |
| 18 | + echo " -h - this help" |
21 | 19 | exit 0 |
22 | 20 | } |
23 | 21 |
|
24 | 22 | goodfinish() |
25 | 23 | { |
26 | 24 | echo "" |
27 | | - echo -e $YELLOW"OK.\n"$ENDCOLOR |
| 25 | + echo "OK.\n" |
28 | 26 | echo "" |
29 | 27 | } |
30 | 28 |
|
31 | 29 | testargs() |
32 | 30 | { |
33 | | - if [ "+$1" != "+" -a "+$1" != "+gzip" -a "+$1" != "+bzip2" -a "+$1" != "+lzma" ] |
| 31 | + if [ "+$1" = "+--help" -o "x$1" = "x-h" ] |
34 | 32 | then |
35 | | - usage |
| 33 | + usage |
36 | 34 | fi |
37 | 35 | } |
38 | 36 |
|
39 | 37 | testcomponent() |
40 | 38 | { |
41 | 39 | tnocomp="" |
42 | | - tcomp="/bin/grep" |
43 | | - tdeb="grep_*.deb" |
44 | | - if [ ! -f "$tcomp" ] |
45 | | - then |
46 | | - tnocomp="$tnocomp $tcomp($tdeb)" |
47 | | - fi |
48 | | - tcomp="/usr/bin/awk" |
49 | | - tdeb="gawk_*.deb" |
50 | | - if [ ! -f "$tcomp" ] |
51 | | - then |
52 | | - tnocomp="$tnocomp $tcomp($tdeb)" |
53 | | - fi |
54 | | - tcomp="/bin/tar" |
55 | | - tdeb="tar_*.deb" |
56 | | - if [ ! -f "$tcomp" ] |
57 | | - then |
58 | | - tnocomp="$tnocomp $tcomp($tdeb)" |
59 | | - fi |
60 | | - tcomp="/bin/gzip" |
61 | | - tdeb="gzip_*.deb" |
62 | | - if [ ! -f "$tcomp" ] |
63 | | - then |
64 | | - tnocomp="$tnocomp $tcomp($tdeb)" |
65 | | - fi |
66 | | - tcomp="/usr/bin/md5sum" |
67 | | - tdeb="coreutils_*.deb" |
68 | | - if [ ! -f "$tcomp" ] |
69 | | - then |
70 | | - tnocomp="$tnocomp $tcomp($tdeb)" |
71 | | - fi |
72 | | - tcomp="/usr/bin/ar" |
73 | | - tdeb="binutils_*.deb" |
74 | | - if [ ! -f "$tcomp" ] |
| 40 | + tcomp="grep"; [ $(which $tcomp) ] || tnocomp="$tnocomp $tcomp" |
| 41 | + tcomp="awk"; [ $(which $tcomp) ] || tnocomp="$tnocomp $tcomp" |
| 42 | + tcomp="tar"; [ $(which $tcomp) ] || tnocomp="$tnocomp $tcomp" |
| 43 | + tcomp="ar"; [ $(which $tcomp) ] || tnocomp="$tnocomp $tcomp" |
| 44 | + tcomp="gzip"; [ $(which $tcomp) ] || tnocomp="$tnocomp $tcomp" |
| 45 | + tcomp="md5sum"; [ $(which $tcomp) ] || tnocomp="$tnocomp $tcomp" |
| 46 | + if [ "x$tnocomp" != "x" ] |
75 | 47 | then |
76 | | - tnocomp="$tnocomp $tcomp($tdeb)" |
77 | | - fi |
78 | | - if [ "+$tnocomp" != "+" ] |
79 | | - then |
80 | | - echo -e $RED"Not found $tnocomp !"$ENDCOLOR |
81 | | - echo "" |
82 | | - exit 0 |
| 48 | + echo "ERROR: Not found $tnocomp !" |
| 49 | + echo "" |
| 50 | + exit 1 |
83 | 51 | fi |
84 | 52 | } |
85 | 53 |
|
86 | 54 | testroot() |
87 | 55 | { |
88 | | - if [ $USER != root ] |
| 56 | + if [ "$USER" != "root" ] |
89 | 57 | then |
90 | | - echo -e $RED"You no root!"$ENDCOLOR |
91 | | - echo "" |
92 | | - usage |
93 | | - exit 0 |
| 58 | + echo "ERROR: You no root!" |
| 59 | + echo "" |
| 60 | + usage |
| 61 | + exit 1 |
94 | 62 | fi |
95 | 63 | } |
96 | 64 |
|
97 | 65 | main() |
98 | 66 | { |
99 | | - if [ "+$1" = "+" ] |
100 | | - then |
101 | | - PACK=$DEFPACK |
102 | | - else |
103 | | - PACK="$1" |
104 | | - fi |
105 | | - if [ "$PACK" = "gzip" ] |
106 | | - then |
107 | | - PACKOPT="--gzip" |
108 | | - PACKSUF="tar.gz" |
109 | | - fi |
110 | | - if [ "$PACK" = "bzip2" ] |
111 | | - then |
112 | | - PACKOPT="--bzip2" |
113 | | - PACKSUF="tar.bz2" |
114 | | - fi |
115 | | - if [ "$PACK" = "lzma" ] |
116 | | - then |
117 | | - PACKOPT="--lzma" |
118 | | - PACKSUF="tar.lzma" |
119 | | - fi |
120 | | - if [ -d "config" -a -d "data" ] |
| 67 | + PACK=$DEFPACK |
| 68 | + while getopts ":c:h" opt |
| 69 | + do |
| 70 | + case $opt in |
| 71 | + c) PACK="$OPTARG" |
| 72 | + ;; |
| 73 | + h) usage |
| 74 | + ;; |
| 75 | + *) echo "ERROR: Unknown option -$OPTARG" >&2 |
| 76 | + exit 1 |
| 77 | + ;; |
| 78 | + esac |
| 79 | + done |
| 80 | + case "$PACK" in |
| 81 | + bzip2) PACKOPT="--bzip2"; PACKSUF="tar.bz2" |
| 82 | + ;; |
| 83 | + lzma) PACKOPT="--lzma"; PACKSUF="tar.lzma" |
| 84 | + ;; |
| 85 | + *) PACK="gzip"; PACKOPT="--gzip"; PACKSUF="tar.gz" |
| 86 | + ;; |
| 87 | + esac |
| 88 | + echo "Compress: $PACK" |
| 89 | + if [ -d "DEBIAN" -a -d "CONTENTS" ] |
121 | 90 | then |
122 | | - mkdir "root" |
123 | | - cp -r "config" "root/control" |
124 | | - cp -r "data" "root/data" |
125 | | - cd "root" |
126 | | - chown -R root * |
127 | | - chgrp -R root * |
128 | | - cd "control" |
129 | | - rm -f "md5sums" |
130 | | - packname=`grep "^Package:" control | awk '{print $2}'` |
131 | | - vername=`grep "^Version:" control | awk '{print $2}'` |
132 | | - archname=`grep "^Architecture:" control | awk '{print $2}'` |
133 | | - debname=$packname"_"$vername"_"$archname".deb" |
134 | | - echo "$debname" |
135 | | - |
136 | | - cd "../data" |
137 | | - echo "Package: $packname" |
138 | | - echo "" |
139 | | - |
140 | | - echo "1) Compress contents of the package..." |
141 | | - tar -cvf "../data.tar" ./ |
142 | | - echo "" |
143 | | - echo "SUMMARY:" |
144 | | - stat -c "%n : %s" "../data.tar" |
145 | | - echo "" |
146 | | - if [ "$PACK" = "gzip" ] |
147 | | - then |
148 | | - gzip -v "../data.tar" |
149 | | - fi |
150 | | - if [ "$PACK" = "bzip2" ] |
151 | | - then |
152 | | - bzip2 -v "../data.tar" |
153 | | - fi |
154 | | - if [ "$PACK" = "lzma" ] |
155 | | - then |
156 | | - lzma -v "../data.tar" |
157 | | - fi |
158 | | - echo "" |
159 | | - |
160 | | - echo "2) Creating checksum..." |
161 | | - for tdir in * |
162 | | - do |
163 | | - if [ -d "$tdir" ] |
164 | | - then |
165 | | - find "$tdir" -type f -printf "\"%p\"\n" | xargs md5sum >> "../md5sums" |
166 | | - fi |
167 | | - done |
168 | | - cat "../md5sums" |
169 | | - echo "" |
170 | | - |
171 | | - cd ../ |
172 | | - mv -f "md5sums" "control" |
173 | | - |
174 | | - cd control |
175 | | - echo "3) Compress of a package..." |
176 | | - tar -czvf "../control.tar.gz" ./ |
177 | | - echo "" |
178 | | - |
179 | | - cd ../ |
180 | | - echo "4) Creating an index version packing deb package..." |
181 | | - echo "2.0" > "debian-binary" |
182 | | - cat "debian-binary" |
183 | | - echo "" |
184 | | - |
185 | | - echo "5) Deb package assembly..." |
186 | | - ar -qS "$debname" "debian-binary" "control.tar.gz" "data.$PACKSUF" |
187 | | - cp "$debname" ../ |
188 | | - cd ../ |
189 | | - rm -fr root |
190 | | - echo "" |
191 | | - else |
192 | | - if [ ! -d "config" ] |
193 | | - then |
194 | | - echo "Not [config] packages!" |
195 | | - fi |
196 | | - if [ ! -d "data" ] |
197 | | - then |
198 | | - echo "Not [data] packages!" |
199 | | - fi |
| 91 | + mkdir "root" |
| 92 | + cp -r "DEBIAN" "root/DEBIAN" |
| 93 | + cp -r "CONTENTS" "root/CONTENTS" |
| 94 | + cd "root" |
| 95 | + chown -R root * |
| 96 | + chgrp -R root * |
| 97 | + cd "DEBIAN" |
| 98 | + rm -f "md5sums" |
| 99 | + packname="$(grep '^Package:' control | awk '{print $2}')" |
| 100 | + vername="$(grep '^Version:' control | awk '{print $2}')" |
| 101 | + archname="$(grep '^Architecture:' control | awk '{print $2}')" |
| 102 | + debname=$packname"_"$vername"_"$archname".deb" |
| 103 | + echo "$debname" |
| 104 | + |
| 105 | + cd "../CONTENTS" |
| 106 | + echo "Package: $packname" |
| 107 | + echo "" |
| 108 | + |
| 109 | + echo "1) Creating checksum..." |
| 110 | + for tdir in * |
| 111 | + do |
| 112 | + if [ -d "$tdir" ] |
| 113 | + then |
| 114 | + find "$tdir" -type f -printf "\"%p\"\n" | xargs md5sum >> "../DEBIAN/md5sums" |
| 115 | + fi |
| 116 | + done |
| 117 | + cat "../DEBIAN/md5sums" |
| 118 | + echo "" |
| 119 | + |
| 120 | + echo "2) Compress contents of the package..." |
| 121 | + tar -cvf "../data.tar" ./ |
| 122 | + echo "" |
| 123 | + echo "SUMMARY:" |
| 124 | + stat -c "%n : %s" "../data.tar" |
| 125 | + echo "" |
| 126 | + case "$PACK" in |
| 127 | + bzip2) bzip2 -v "../data.tar" |
| 128 | + ;; |
| 129 | + lzma) lzma -v "../data.tar" |
| 130 | + ;; |
| 131 | + *) gzip -v "../data.tar" |
| 132 | + ;; |
| 133 | + esac |
| 134 | + echo "" |
| 135 | + |
| 136 | + cd "../DEBIAN" |
| 137 | + echo "3) Compress of a package..." |
| 138 | + tar -czvf "../control.tar.gz" ./ |
| 139 | + echo "" |
| 140 | + |
| 141 | + cd ../ |
| 142 | + echo "4) Creating an index version packing deb package..." |
| 143 | + echo "2.0" > "debian-binary" |
| 144 | + cat "debian-binary" |
| 145 | + echo "" |
| 146 | + |
| 147 | + echo "5) Deb package assembly..." |
| 148 | + ar -qS "$debname" "debian-binary" "control.tar.gz" "data.$PACKSUF" |
| 149 | + cp "$debname" ../ |
| 150 | + cd ../ |
| 151 | + rm -fr root |
| 152 | + echo "" |
| 153 | + else |
| 154 | + if [ ! -d "DEBIAN" ] |
| 155 | + then |
| 156 | + echo "Not [DEBIAN] packages!" |
| 157 | + fi |
| 158 | + if [ ! -d "CONTENTS" ] |
| 159 | + then |
| 160 | + echo "Not [CONTENTS] packages!" |
| 161 | + fi |
200 | 162 | fi |
201 | 163 | } |
202 | 164 |
|
|
0 commit comments