#!/bin/bash ############################ # slack - slackbuilds.org # ############################ ########VARS######### #Local Vars UPDATE="" PKG="" BUILD="" #DIRS TMP="/var/tmp/slack" SBD=~/slackbuilds #exit EXIT_CODE="0" ####################### [ -d "$SBD" ] || mkdir -p "$SBD" [ -d "$TMP" ] || mkdir -p "$TMP" # Parse options while [ $# -gt 0 ] do case "$1" in update) UPDATE="true" shift 1 ;; build) PKG="$2" shift 2 ;; search) PKG="$2" BUILD="no" shift 2 ;; --) # Rest of command line arguments are non option arguments shift # Discard separator from list of arguments break # Finish for loop ;; -*) echo "Unknown option: $1" >&2 pod2usage --output ">&2" "$0" exit 2 ;; *) # Non option argument break # Finish for loop ;; esac done up () { rsync -P -v -r ftp.slackbuilds.org::slackbuilds "$SBD" } search () { ( cd "$TMP"; find $SBD/ -iname "$PKG.tar.gz" -exec tar xzvf "{}" ";" ) } localvars() { exec < "$SUBST.info" while read line do export "$line" | grep env done } build () { [ "$UID" -ne "0" ] && { echo "Roots, bloody roots...."; exit 1; } local SUBST="${PKG%%.*}" search "$SUBST"; cd "$TMP/$SUBST" . "$SUBST.info" wget "$DOWNLOAD" && ( SOURCE=`basename $DOWNLOAD`; md5sum "$SOURCE" > ./"$SOURCE".md5; md5sum -c "$SOURCE" ) [ $? -ne "o" ] && { echo "md5 checksum failed!"; exit 1; } sh "$SUBST.SlackBuild" && ( cd /tmp; installpkg "$SUBST"*; ) [ $? -ne "0" ] && { echo "Cowardly refused to install packages"; exit 1; } ( localvars ) && read } [ "$PKG" != "" ] && build [ "$UPDATE" == "true" ] && up [ "$BUILD" == "no" ] && search exit "$EXIT_CODE" #Author: DaFruzler #License: GPL