-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage-apt.bash
More file actions
103 lines (91 loc) · 2.25 KB
/
Copy pathpackage-apt.bash
File metadata and controls
103 lines (91 loc) · 2.25 KB
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
#!/bin/bash -x
# Macros
CND_CONF="${1}"
OUTPUT_BASENAME="${2}"
readonly CONST_PACKAGE_SPEC=package-spec.cfg
readonly CONST_FIELD_SPEC_VERSION=CONST_PACKAGE_VERSION
TOP=`pwd`
CND_DLIB_EXT=so
TMPDIRNAME=tmp-packaging
NBTMPDIR=${CND_CONF}/${TMPDIRNAME}
OUTPUT_PATH=${CND_CONF}/${OUTPUT_BASENAME}
PACKAGE_TOP_DIR=/usr/
VAR_FIELD_SPEC_VERSION=`cat $CONST_PACKAGE_SPEC | grep $CONST_FIELD_SPEC_VERSION | cut -d ' ' -f 2`
# Functions
function checkPackageSpec
{
if [ ! -r ${CONST_PACKAGE_SPEC} ]
then
exit 1
fi
}
function checkReturnCode
{
rc=$?
if [ $rc != 0 ]
then
exit $rc
fi
}
function makeDirectory
# $1 directory path
# $2 permission (optional)
{
mkdir -p "$1"
checkReturnCode
if [ "$2" != "" ]
then
chmod $2 "$1"
checkReturnCode
fi
}
function copyFileToTmpDir
# $1 from-file path
# $2 to-file path
# $3 permission
{
cp "$1" "$2"
checkReturnCode
if [ "$3" != "" ]
then
chmod $3 "$2"
checkReturnCode
fi
}
# Setup
cd "${TOP}"
checkPackageSpec
rm -rf ${NBTMPDIR}
mkdir -p ${NBTMPDIR}
# Copy files and create directories and links
cd "${TOP}"
makeDirectory "${NBTMPDIR}/usr/bin"
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
# Create control file
cd "${TOP}"
CONTROL_FILE=${NBTMPDIR}/DEBIAN/control
rm -f ${CONTROL_FILE}
mkdir -p ${NBTMPDIR}/DEBIAN
cd "${TOP}"
echo "Package: $OUTPUT_BASENAME" >> ${CONTROL_FILE}
echo "Version: $VAR_FIELD_SPEC_VERSION" >> ${CONTROL_FILE}
echo 'Architecture: amd64' >> ${CONTROL_FILE}
echo 'Maintainer: dishmaev <idax@rambler.ru>' >> ${CONTROL_FILE}
echo 'Description: Sample application for test automation build deb and rpm packages' >> ${CONTROL_FILE}
echo 'Section: misc' >> ${CONTROL_FILE}
echo 'Priority: optional' >> ${CONTROL_FILE}
#echo 'Depends: libqt5widgets5' >> ${CONTROL_FILE}
echo 'Depends: libboost-regex1.62.0' >> ${CONTROL_FILE}
# Create Debian Package
cd "${TOP}"
cd "${NBTMPDIR}/.."
dpkg-deb --build ${TMPDIRNAME}
checkReturnCode
cd "${TOP}"
mkdir -p ${CND_CONF}/package
mv ${NBTMPDIR}.deb ${CND_CONF}/package/${OUTPUT_BASENAME}-${VAR_FIELD_SPEC_VERSION}.deb
checkReturnCode
echo Debian: ${CND_CONF}/package/${OUTPUT_BASENAME}-${VAR_FIELD_SPEC_VERSION}.deb
# Cleanup
cd "${TOP}"
rm -rf ${NBTMPDIR}