newapkbuild: move code from abuild to new script
try keep code in abuild cleaner by moving out creation of new apkbuild to separate script.
This commit is contained in:
parent
74debd67ce
commit
c9616e9d9e
3
Makefile
3
Makefile
@ -7,7 +7,8 @@ sysconfdir ?= /etc
|
|||||||
datadir ?= $(prefix)/share/$(PACKAGE)
|
datadir ?= $(prefix)/share/$(PACKAGE)
|
||||||
apkcache ?= ~/.cache/apks
|
apkcache ?= ~/.cache/apks
|
||||||
|
|
||||||
SCRIPTS := abuild devbuild mkalpine buildrepo abuild-keygen abuild-sign
|
SCRIPTS := abuild devbuild mkalpine buildrepo abuild-keygen \
|
||||||
|
abuild-sign newapkbuild
|
||||||
USR_BIN_FILES := $(SCRIPTS) abuild-tar
|
USR_BIN_FILES := $(SCRIPTS) abuild-tar
|
||||||
SAMPLES := sample.APKBUILD sample.initd sample.confd \
|
SAMPLES := sample.APKBUILD sample.initd sample.confd \
|
||||||
sample.pre-install sample.post-install
|
sample.pre-install sample.post-install
|
||||||
|
50
abuild.in
50
abuild.in
@ -934,38 +934,6 @@ post_add() {
|
|||||||
$SUDO apk add -u "$pkgf" || die "Failed to install $1"
|
$SUDO apk add -u "$pkgf" || die "Failed to install $1"
|
||||||
}
|
}
|
||||||
|
|
||||||
# create new aport from templates
|
|
||||||
newaport() {
|
|
||||||
local pn=${newname%-[0-9]*}
|
|
||||||
local pv
|
|
||||||
if [ "$pn" != "$newname" ]; then
|
|
||||||
pv=${newname#$pn-}
|
|
||||||
fi
|
|
||||||
if [ -e "$pn"/APKBUILD ]; 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
|
|
||||||
}
|
|
||||||
|
|
||||||
installdeps() {
|
installdeps() {
|
||||||
local deps i
|
local deps i
|
||||||
sudo apk add --repository "$apkcache" --virtual .makedepends-$pkgname \
|
sudo apk add --repository "$apkcache" --virtual .makedepends-$pkgname \
|
||||||
@ -1003,9 +971,6 @@ usage() {
|
|||||||
echo " -s Set source package destination directory"
|
echo " -s Set source package destination directory"
|
||||||
echo " -u Recursively build and upgrade all dependencies (using sudo)"
|
echo " -u Recursively build and upgrade all dependencies (using sudo)"
|
||||||
echo ""
|
echo ""
|
||||||
echo " -n Create a new APKBUILD in a directory named PKGNAME"
|
|
||||||
echo " -c Copy a sample init.d, conf.d and install script to new directory"
|
|
||||||
echo ""
|
|
||||||
echo "Commands:"
|
echo "Commands:"
|
||||||
echo " checksum Generate checksum to be included in APKBUILD"
|
echo " checksum Generate checksum to be included in APKBUILD"
|
||||||
echo " fetch Fetch sources to \$SRCDEST and verify checksums"
|
echo " fetch Fetch sources to \$SRCDEST and verify checksums"
|
||||||
@ -1031,15 +996,14 @@ usage() {
|
|||||||
APKBUILD="${APKBUILD:-./APKBUILD}"
|
APKBUILD="${APKBUILD:-./APKBUILD}"
|
||||||
unset force
|
unset force
|
||||||
unset recursive
|
unset recursive
|
||||||
while getopts "cdfhi:kin:p:P:qrRs:u" opt; do
|
while getopts "dfhi:kinp:P:qrRs:u" opt; do
|
||||||
case $opt in
|
case $opt in
|
||||||
'c') cpinitd=1;;
|
|
||||||
'd') nodeps=1;;
|
'd') nodeps=1;;
|
||||||
'f') force=1;;
|
'f') force=1;;
|
||||||
'h') usage;;
|
'h') usage;;
|
||||||
'i') install_after="$install_after $OPTARG";;
|
'i') install_after="$install_after $OPTARG";;
|
||||||
'k') keep=1;;
|
'k') keep=1;;
|
||||||
'n') newname=$OPTARG;;
|
'n') die "Use newapkbuild to create new aports";;
|
||||||
'p') PKGDEST=$OPTARG;;
|
'p') PKGDEST=$OPTARG;;
|
||||||
'P') REPODEST=$OPTARG;;
|
'P') REPODEST=$OPTARG;;
|
||||||
'q') quiet=1;;
|
'q') quiet=1;;
|
||||||
@ -1058,10 +1022,8 @@ if [ -n "$REPODEST" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# source the buildfile
|
# source the buildfile
|
||||||
if [ -z "$newname" ]; then
|
[ -f "$APKBUILD" ] || die "Could not find $APKBUILD (PWD=$PWD)"
|
||||||
[ -f "$APKBUILD" ] || die "Could not find $APKBUILD (PWD=$PWD)"
|
. "$APKBUILD"
|
||||||
. "$APKBUILD"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If we are handling a sub package then reset subpackages and install
|
# If we are handling a sub package then reset subpackages and install
|
||||||
if [ -n "$subpkgname" ]; then
|
if [ -n "$subpkgname" ]; then
|
||||||
@ -1075,10 +1037,6 @@ controldir="$pkgbasedir"/.control.${subpkgname:-$pkgname}
|
|||||||
trap 'die "Aborted by user"' INT
|
trap 'die "Aborted by user"' INT
|
||||||
set_xterm_title "abuild: $pkgname"
|
set_xterm_title "abuild: $pkgname"
|
||||||
|
|
||||||
if [ -z "$1" ] && [ -n "$newname" ]; then
|
|
||||||
set "newaport"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
set all
|
set all
|
||||||
fi
|
fi
|
||||||
|
78
newapkbuild.in
Executable file
78
newapkbuild.in
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
#!/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
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user