#!/bin/sh # script to generate a new APKBUILD # Copyright (c) 2009 Natanael Copa # # 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 return 1 } # 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