-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcreate_bundle.lin
139 lines (114 loc) · 3.53 KB
/
create_bundle.lin
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
131
132
133
134
135
136
137
138
139
#!/usr/bin/env bash
###
### TODO: sign deb
### create rpm
(($# < 1)) && echo "Missing parameters" && exit 1
TARGET=$1
APP_NAME=${2:-$TARGET}
TARGET_APP=$APP_NAME
CONFIG=${3:-Release}
VERSION=${4:-0.1}
ARCH=${ARCH:-$5}
ARCH=${ARCH:-$(uname -i)}
DESC="Embedded Luce for $APP_NAME"
if [[ "$ARCH" == x86_64 ]]
then
ARCH=amd64
fi
DEST="build/${APP_NAME}/${CONFIG}/Linux"
FDEST="$DEST"/dist
mkdir -p "${DEST}"
mkdir -p "${FDEST}/usr"
mkdir -p "${FDEST}"/usr/{bin,share,lib}
mkdir -p "${FDEST}"/usr/share/{pixmaps,applications,doc,menu}
mkdir -p "${FDEST}"/usr/share/doc/"${APP_NAME}"
ext=.${TARGET##*.}; [[ "$ext" == .$TARGET ]] && ext=
name="${APP_NAME//_sf}"
name="${name//_s}"
EXEC_NAME="$name$ext"
ICON="$name"
if [[ -f sources/lin/icon.png ]]
then
convert -thumbnail 48x48 sources/lin/icon.png "$DEST"/"$ICON".png
else
\cp -f templates/lin/icon.xpm "$DEST"/"$ICON".png
fi
if [[ -f sources/lin/icon.xpm ]]
then
convert -thumbnail 48x48 sources/lin/icon.xpm "$DEST"/"$ICON".xpm
else
\cp -f templates/lin/icon.xpm "$DEST"/"$ICON".xpm
fi
if [[ -f sources/lin/default.desktop ]]
then
\cp -f sources/lin/default.desktop "$DEST"/"$APP_NAME".desktop
else
\cp -f templates/lin/default.desktop "$DEST"/"$APP_NAME".desktop
sed -i "s,%APP_NAME%,${APP_NAME},g;s,%ICON%,${ICON},g;s,%EXEC_NAME%,${EXEC_NAME},g" "$DEST/$APP_NAME".desktop
fi
chmod +x "$DEST"/"${APP_NAME}".desktop
\cp -f "$TARGET" "$DEST"/"$EXEC_NAME" || exit 1
if [[ -f "sources/lin/README" ]]
then
\cp -f "sources/lin/README" "$DEST"
else
\cp -f "templates/README.tmpl" "$DEST"/README
sed -i "s,%APP_NAME%,${APP_NAME},g" "$DEST"/README
fi
## assets
if [[ -r "sources/lin/assets" ]]
then
\cp -Lal "sources/lin/assets/" "$DEST"
fi
## assets
if [[ -r "sources/lin/lib" ]]
then
mkdir "$DEST/lib"
for f in sources/lin/lib/*; do
\cp "$f" "$DEST"/lib/
done
#\cp -H "./sources/lin/lib/*" "$DEST"/
fi
if [[ -f sources/lin/mime.xml ]]
then
mkdir -p "$FDEST"/usr/share/mime/packages
\cp -f sources/lin/mime.xml "$DEST/${APP_NAME}.xml"
\ln -f "$DEST/${APP_NAME}.xml" "$FDEST"/usr/share/mime/packages/"${APP_NAME}.xml"
fi
## debian package
if [[ -f sources/lin/changelog ]]
then
\cp -f sources/lin/changelog > "$FDEST"/changelog
else
\cp -f templates/lin/changelog "$FDEST"/
fi
if [[ -f sources/lin/copyright ]]
then
\cp -f templates/lin/copyright "$FDEST"/
cat sources/lin/copyright >> "$FDEST"/copyright
else
\cp -f templates/lin/copyright "$FDEST"/
fi
sed -i "s,%APP_NAME%,${APP_NAME},g" "$FDEST"/copyright
\cp -f templates/lin/control "$FDEST"/
\cp -f templates/lin/menu "$FDEST"/
pushd "$FDEST" &>/dev/null || exit 1
ln -f ../*.png ../*.xpm usr/share/pixmaps/
ln -f ../"${APP_NAME}" usr/bin
ln -f ../README usr/share/doc/"${APP_NAME}"/
ln -f ../*.desktop usr/share/applications/
ln -f copyright usr/share/doc/"${APP_NAME}"/
DATE=$(LC_ALL=C date +"%a, %d %b %Y %X %z")
sed -i "s,%APP_NAME%,${APP_NAME},g;s|%DATE%|${DATE}|g;s,%VERSION%,${VERSION},g;s,%DESC%,${DESC},g" changelog
gzip -c changelog > usr/share/doc/"${APP_NAME}"/changelog.Debian.gz
sed -i "s,%APP_NAME%,${APP_NAME},g;s,%EXEC_NAME%,${EXEC_NAME},g;s,%DESC%,${DESC},g" menu
ln -f menu usr/share/menu/"${APP_NAME}"
SIZE=$(du -ks usr|cut -f 1)
sed -i "s,%APP_NAME%,${APP_NAME},g;s,%VERSION%,${VERSION},g;\
s,%SIZE%,${SIZE},g;s,%DESC%,${DESC},g;s,%ARCH%,${ARCH},g" control
tar czf data.tar.gz usr
tar czf control.tar.gz control
echo "2.0" > debian-binary
ar r ../"${APP_NAME}-${VERSION}-1.${ARCH}".deb debian-binary control.tar.gz data.tar.gz
popd &>/dev/null
\rm -rf "$FDEST"