Skip to content

Commit fa0ac87

Browse files
committed
0.5: simplify and dash (not bash)
1 parent 43ce4d2 commit fa0ac87

File tree

23 files changed

+486
-680
lines changed

23 files changed

+486
-680
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
bash-deb-build.
2-
0.3
2+
0.5
33

44
# Bash DEB build.
55

@@ -14,6 +14,6 @@ Bash-script for build deb package:
1414
dpkg, grep, tar, gzip, bzip2, lzma, coreutils, binutils
1515

1616
---
17-
2018
17+
2020
1818
zvezdochiot
19-
https://github.com/zvezdochiot/bash-deb-build
19+
https://github.com/BASH-Auto-Tools/bash-deb-build

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.4
1+
0.5

control

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
Package: bash-deb-build
2-
Version: 0.4
2+
Version: 0.5
33
Architecture: all
44
Maintainer: zvezdochiot <[email protected]>
55
Section: utils
66
Priority: optional
7-
Installed-Size: 36
87
Depends: dpkg, grep, tar, gzip, coreutils, binutils
9-
Homepage: http://mykaralw.narod.ru/
8+
Installed-Size: 20
9+
Homepage: https://github.com/BASH-Auto-Tools/bash-deb-build
1010
Description: Bash-script for build deb package.
1111
Bash-script for build deb package:
1212
build:

deb-build.sh

Lines changed: 120 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -1,202 +1,164 @@
1-
#!/bin/bash
1+
#!/bin/sh
22
#deb-build.sh
33

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"
105
DEFPACK="gzip"
116

127
tproc=`basename $0`
13-
echo -e $GREEN"$tproc version $VER"$ENDCOLOR
8+
echo "$tproc version $VER"
149
echo ""
1510

1611
usage()
1712
{
1813
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"
2119
exit 0
2220
}
2321

2422
goodfinish()
2523
{
2624
echo ""
27-
echo -e $YELLOW"OK.\n"$ENDCOLOR
25+
echo "OK.\n"
2826
echo ""
2927
}
3028

3129
testargs()
3230
{
33-
if [ "+$1" != "+" -a "+$1" != "+gzip" -a "+$1" != "+bzip2" -a "+$1" != "+lzma" ]
31+
if [ "+$1" = "+--help" -o "x$1" = "x-h" ]
3432
then
35-
usage
33+
usage
3634
fi
3735
}
3836

3937
testcomponent()
4038
{
4139
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" ]
7547
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
8351
fi
8452
}
8553

8654
testroot()
8755
{
88-
if [ $USER != root ]
56+
if [ "$USER" != "root" ]
8957
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
9462
fi
9563
}
9664

9765
main()
9866
{
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" ]
12190
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
200162
fi
201163
}
202164

0 commit comments

Comments
 (0)