abuild/newapkbuild.in
Natanael Copa c9616e9d9e newapkbuild: move code from abuild to new script
try keep code in abuild cleaner by moving out creation of new apkbuild
to separate script.
2009-10-24 20:03:06 +00:00

79 lines
1.7 KiB
Bash
Executable File

#!/bin/sh
# script to generate a new APKBUILD
# Copyright (c) 2009 Natanael Copa <natanael.copa@gmail.com>
#
# Distributed under GPL-2
#
# Depends on: busybox utilities, fakeroot,
#
version=@VERSION@
sysconfdir=@sysconfdir@
datadir=@datadir@
prog=${0##*/}
error() {
echo "$@" >&2
}
# create new aport from templates
newaport() {
local newname="$1"
local pn=${newname%-[0-9]*}
local pv
if [ "$pn" != "$newname" ]; then
pv=${newname#$pn-}
fi
if [ -e "$pn"/APKBUILD ] && [ -z "$force" ]; then
error "$pn/APKBUILD already exist"
return 1
fi
mkdir -p "$pn"
cd "$pn"
sed -e '1,/^\#*$/d' \
-e "s/^\(# Contributor: \).*/\1$PACKAGER/" \
-e "s/^\(# Maintainer: \).*/\1$PACKAGER/" \
-e "s/^pkgname=.*/pkgname=$pn/" \
-e "s/^pkgver=.*/pkgver=$pv/" \
"$datadir"/sample.APKBUILD > APKBUILD || return 1
#-e '1,/^\#$/d' \
if [ -n "$cpinitd" ]; then
cp "$datadir"/sample.initd $pn.initd
cp "$datadir"/sample.confd $pn.confd
cp "$datadir"/sample.pre-install $pn.pre-install
cp "$datadir"/sample.post-install $pn.post-install
sed -i -e "s/^install=.*/install=\"\$pkgname.pre-install \$pkgname.post-install\"/" \
-e "s/^source=\"\(.*\)\"/source=\"\1\n\t$pn.initd\n\t$pn.confd\n\t\$install\n\t\"/" \
APKBUILD
fi
}
usage() {
echo "$prog $version"
echo "usage: $prog [-cfh] PKGNAME[-PKGVER]"
echo "Options:"
echo " -c Copy a sample init.d, conf.d and install script to new directory"
echo " -f Force even if directory already exist"
echo " -h Show this help"
echo ""
exit 0
}
while getopts "cfh" opt; do
case $opt in
'c') cpinitd=1;;
'f') force=1;;
'h') usage;;
esac
done
shift $(( $OPTIND - 1 ))
while [ $# -gt 0 ]; do
newaport $1 || exit 1
shift
done