Hilfsfunktion 'ary_to_hash' für einfache Umwandlung eines Arrays in ein Hash
[kivitendo-erp.git] / DEBIAN / mk_erp_deb.sh
1 #!/bin/bash
2
3 #Jedes neue Paket der gleichen Version bekommt eine eigene Nummer
4 NR="0"
5
6 #hier wurde das Git-Paket entpakt:
7 SRC=/tmp/deb_test/unstable
8
9 #hier wird das Debian-Paket gebaut:
10 DST=/tmp/deb_test/package
11
12
13 ################################################
14 # ab hier keine Konfiguration mehr
15 ################################################
16
17 VER=`cat VERSION`
18 DEST=$DST/lx-office-erp_$VER-$NR-all
19
20 FILES='
21 usr/lib/lx-office-erp/
22 usr/share/lx-office-erp/
23 usr/share/doc/lx-office-erp/
24 var/lib/lx-office-erp/spool/
25 var/lib/lx-office-erp/users/
26 var/lib/lx-office-erp/css/
27 var/lib/lx-office-erp/xslt/
28 var/lib/lx-office-erp/templates/
29 var/lib/lx-office-erp/webdav/lieferantenbestellungen/
30 var/lib/lx-office-erp/webdav/anfragen/
31 var/lib/lx-office-erp/webdav/gutschriften/
32 var/lib/lx-office-erp/webdav/einkaufsrechnungen/
33 var/lib/lx-office-erp/webdav/rechnungen/
34 var/lib/lx-office-erp/webdav/bestellungen/
35 var/lib/lx-office-erp/webdav/angebote/
36 usr/lib/lx-office-erp/
37 usr/share/lx-office-erp/
38 usr/share/doc/lx-office-erp/
39 usr/share/man/man1/:lx-office-erp.1.gz
40 etc/lx-office-erp/:lx-office-erp.cherokee.handler
41 etc/lx-office-erp/:lx-office-erp.apache2.conf
42 etc/lx-office-erp/:lx-office-erp.cherokee
43 usr/bin/:lx-office-erp
44 '
45
46 for filespec in $FILES; do
47   set - `echo $filespec | sed -e 's/:/ /g'`
48   dir=$1
49   file=$2
50   mkdir -p $SRC/DEBIAN/$dir
51   if [ -f $SRC/DEBIAN/files/$file ]; then
52     cp  $SRC/DEBIAN/files/$file $SRC/DEBIAN/$dir/$file
53   else
54     echo '1' > $SRC/DEBIAN/$dir/.dummy
55   fi
56 done
57
58 SYMLINKS='
59 css:/var/lib/lx-office-erp/css
60 doc:/usr/share/doc/lx-office-erp/
61 image:/usr/share/lx-office-erp
62 spool:/var/lib/lx-office-erp/spool
63 templates:/var/lib/lx-office-erp/templates
64 users:/var/lib/lx-office-erp/users/
65 webdav:/var/lib/lx-office-erp/webdav
66 xslt:/var/lib/lx-office-erp/xslt
67 '
68
69 for symspec in $SYMLINKS; do
70   set - `echo $symspec | sed -e 's/:/ /g'`
71   src=$1
72   tar=$2
73
74   ln -s $tar $SRC/DEBIAN/usr/lib/lx-office-erp/$src
75 done
76 #fertig
77
78 mkdir -p $DEST
79 cd $DEST
80
81 #Struktur anlegen:
82 cp -a $SRC/DEBIAN/* .
83 rm ./mk*.sh
84
85 #Dateien kopieren:
86 #aber keine fertigen Konfigurationen, nur *.default
87 cp -a $SRC/SL usr/lib/lx-office-erp
88 cp -a $SRC/bin usr/lib/lx-office-erp
89 cp -a $SRC/js usr/lib/lx-office-erp
90 cp -a $SRC/locale usr/lib/lx-office-erp
91 cp -a $SRC/lxo-import usr/lib/lx-office-erp
92 cp -a $SRC/modules usr/lib/lx-office-erp
93 cp -a $SRC/scripts usr/lib/lx-office-erp
94 cp -a $SRC/sql usr/lib/lx-office-erp
95 cp -a $SRC/t usr/lib/lx-office-erp
96 cp -a $SRC/*.pl usr/lib/lx-office-erp
97 cp $SRC/VERSION usr/lib/lx-office-erp
98 cp $SRC/index.html usr/lib/lx-office-erp
99 cp $SRC/config/lx-erp.conf  etc/lx-office-erp/lx-erp.conf.default
100 cp $SRC/config/authentication.pl.default etc/lx-office-erp/
101 cp $SRC/menu.ini usr/lib/lx-office-erp/menu.default
102 cp -a $SRC/css var/lib/lx-office-erp
103 cp -a $SRC/templates var/lib/lx-office-erp
104 cp -a $SRC/users var/lib/lx-office-erp
105 cp -a $SRC/xslt var/lib/lx-office-erp
106
107 cp -a $SRC/doc/* usr/share/doc/lx-office-erp/
108 cp -a $SRC/image/* usr/share/lx-office-erp/
109
110 #Git- und dummy-files löschen
111 find . -name ".git*" -exec rm -rf {} \;
112 find . -name ".dummy" -exec rm -rf {} \;
113
114 #Rechte setzen
115 chown -R www-data: usr/lib/lx-office-erp
116 chown -R www-data: var/lib/lx-office-erp
117 chown -R www-data: etc/lx-office-erp
118
119 #MD5 Summe bilden:
120 find usr/ -name "*" -type f -exec md5sum {} \; > DEBIAN/md5sum
121 find var/ -name "*" -type f -exec md5sum {} \; >> DEBIAN/md5sum
122 find etc/ -name "*" -type f -exec md5sum {} \; >> DEBIAN/md5sum
123
124 #Größe feststellen:
125 SIZE=`du -scb . | grep insgesamt | cut -f1`
126
127 #Controlfile updaten:
128 cat DEBIAN/control | sed --expression "s/Installed-Size: 0/Installed-Size: $SIZE/g" > DEBIAN/1.tmp
129 mv DEBIAN/1.tmp DEBIAN/control
130 cat DEBIAN/control | sed --expression "s/Version: 0/Version: $VER-$NR/g" > DEBIAN/1.tmp
131 mv DEBIAN/1.tmp DEBIAN/control
132 #Revisionsnummer evtl. von Hand eintragen
133
134 #Paket bauen:
135 cd ..
136 dpkg-deb --build lx-office-erp_$VER-$NR-all
137
138 echo "Done"