summaryrefslogblamecommitdiff
path: root/newapkbuild.in
blob: bdb511e148d17e0440d8854bbfacd94d680e207a (plain) (tree)



















                                                            






                                    

                                 
                                

                                   


                                  

                                        
                                                             












                                                                 
                                 
                                                                 

                                                                              





































                                                                                                             
#!/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
}

is_url() {
	case "$1" in
	http://*|ftp://*) return 0;;
	esac
}

	
# create new aport from templates
newaport() {
	local newname="${1##*/}"
	local pn=${newname%-[0-9]*}
	local pv
	local source=
	is_url "$1" && source="$1"

	if [ "$pn" != "$newname" ]; then
		pv=${newname#$pn-}
		pv=${pv%.t*} #strip .tar.gz .tgz .tar.bz2 etc
	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
	if [ -n "$source" ]; then
		source=$(echo "$source" | sed "s/$pv/\$pkgver/g")
		sed -i -e "/^source=/s|=.*|=\"$source\"|" APKBUILD || return 1
	fi
	#-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