fi
}
+check_file() {
+ if [ -e $1 ] && [ ! -w $1 ]; then
+ error "File '$1' is not writable."
+ exit 1
+ fi
+}
+
download_file() {
info "Downloading '$1'."
for FILE in ${source[@]}; do
LOCAL_FILENAME=`get_filename $FILE`
case $LOCAL_FILENAME in
- *.tar.gz|*.tar.Z|*.tgz)
- COMMAND="tar -C $SRC --use-compress-program=gzip -xf $LOCAL_FILENAME" ;;
- *.tar.bz2)
- COMMAND="tar -C $SRC --use-compress-program=bzip2 -xf $LOCAL_FILENAME" ;;
- *.zip)
- COMMAND="unzip -qq -o -d $SRC $LOCAL_FILENAME" ;;
+ *.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm)
+ COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME" ;;
*)
COMMAND="cp $LOCAL_FILENAME $SRC" ;;
esac
build_package() {
local BUILD_SUCCESSFUL="no"
+ check_file "$TARGET"
make_work_dir
if [ "$UID" != "0" ]; then
exit 1
fi
+ check_file "$PKGMK_FOOTPRINT"
make_footprint > $PKGMK_FOOTPRINT
touch $TARGET
if [ "$PKGMK_UPDATE_MD5SUM" = "yes" ]; then
download_source
+ check_file "$PKGMK_MD5SUM"
make_md5sum > $PKGMK_MD5SUM
info "Md5sum updated."
exit 0