-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathhelper
executable file
·82 lines (65 loc) · 1.15 KB
/
helper
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
#!/bin/sh
#
set -eu
if [ $# -ne 3 ]; then
echo "usage: helper conf workdir repo"
exit 1
fi
conf="$1"
fakeroot="$2"
repo="$3"
. $conf
set_files()
{
local _files _file
_files=`eval $find_files`
for _file in ${_files}; do
files="${files:-}${files:+
} ${_file#$fakeroot}: '-'"
done
}
set_dirs()
{
local _dirs _dir
_dirs=`eval $find_dirs`
for _dir in ${_dirs}; do
if [ "${_dir}" = "$fakeroot" ]; then
continue
fi
dirs="${dirs:-}${dirs:+
} ${_dir#$fakeroot}/: y"
done
}
set_flatsize()
{
flatsize=`eval $find_size | awk 'BEGIN {s=0} {s+=$1} END {print s}'`
}
set_files
set_dirs
set_flatsize
pkgroot="`mktemp -d $fakeroot/pkg.XXXXX`"
pkgdir="${pkgroot#$fakeroot}"
echo "\
name: $name
version: $version
origin: $origin
comment: $comment
arch: $arch
www: $www
maintainer: $maintainer
prefix: $prefix
licenselogic: $licenselogic
licenses: [$licenses]
flatsize: $flatsize
desc: $desc
categories: [$categories]
files:
$files
directories:
$dirs
${scripts:+scripts:
}${scripts:-}
" > $pkgroot/+MANIFEST
trap "rm $pkgroot/+MANIFEST; rmdir $pkgroot" EXIT
pkg -c $fakeroot create -m $pkgdir -o $pkgdir none
mv $pkgroot/$name-$version.txz $repo/All