New paste Repaste Download
#!/bin/bash
set +h
umask 022
zprint() { echo -e "${zzwhite} *** $* *** ${zzreset}"; }
zmsg() { echo -e "${zzred} *** $* *** ${zzreset}"; }
stars() { echo -e "${zzpurple} $(printf '%.0s*' {1..100}) ${zzreset}"; }
print_formatted_duration() {
    duration=$1
    hour=$((duration / 3600))
    mins=$(( (duration % 3600) / 60 ))
    sec=$((duration % 60))
    zprint $(printf "%02d Hours, %02d Minutes and %02d Seconds \n" ${hour} ${mins} ${sec})
}
zbuild_check() {
    local file="$1"
    if [[ ! -f ${file} ]]; then
        zmsg "Could Not Locate zbc file. exiting."
        return 2
    fi
    local pkg="$(basename ${file%-*})"
    zprint "Checking For: $pkg "
    ! grep -q "^$pkg" "$ZBUILD/zpackage.db"
    return $?
    # found = 1
    # not found = 0
}
zbuild_wait() {
    local wait=${1:-5}
    zmsg "Waiting $wait seconds or Press [SPACE] to continue..."
    read -t $wait -n 1 key
    if [[ $key == " " ]]; then
        zmsg "Skipped wait."
    else
        zmsg "Continuing..."
    fi
}
zbuild_exec() {
    local file="$1"
    case "$file" in
        *.zbc)
            ${ZBUILD}/zbuild "$file" || { echo "Error: $file - Exiting: $?"; return 1; }
            ;;
        *.sh)
            "$file" || { echo "Error: $file - Exiting: $?"; return 1; }
            ;;
        *)
            zmsg "Invalid File Found in Stream"
            return 666
            ;;
    esac
}
zbuild_extract() {
    tar -xf $ZPACK -C $ZTMP || { zmsg "Error Extracting package Tar. Exiting."; return 666; }
    zprint "::Locating Package::"
    pushd ${ZTMP}
    source "$ZPACKTMP/install.sh"
    zprint "::Found ${packagedir}::"
    popd
    ZSCRIPT=$(find "${ZPACKTMP}" -type f -name "*.zbc" | head -n 1)
}
#
#   Start of Package Builder
#
ZBefore=`date +%s`
zzreset="\033[0m"
zzwhite="\033[1;37m"
zzred="\033[1;31m"
zzpurple="\033[1;35m"
ZSRC=${ZSRC:-/sources}
ZBUILD=${ZBUILD:-/zbuild}
ZTARBASEDIR=${ZTARBASEDIR:-/usr/local/src}
ZTAR=$1
ZPACK=$(find $ZTARBASEDIR -type f -name "${ZTAR}.tar")
let zerror=0
export ZSRC
if [[ -z $ZPACK ]]; then
    zmsg "Cannot Locate Package tar file. exiting."
    let zerror=666
else
    zprint "Found ${ZPACK} in ${ZTARBASEDIR}"
fi
#   Extract the Package Tar
ZTMP=$ZBUILD/stage3
ZPACKTMP=$ZTMP/$(basename ${ZPACK%.*})
mkdir -pv $ZPACKTMP
[ $zerror -eq 0 ] && zbuild_extract
zcheck=$?
[ $zcheck -eq 0 ] && zbuild_check $ZSCRIPT
zcheck=$?
[ $zcheck -eq 1 ] && zprint "$(basename ${ZSCRIPT}) Already Installed. Done."
#   Install Package
if [[ $zcheck -eq 0 ]]; then
    stars
    zprint "Executing ${ZSCRIPT}"
    zbuild_wait 5
    zbuild_exec "${ZSCRIPT}" || zerror=$?
    /sbin/ldconfig
fi
if [[ $zerror -ne 0 ]]; then
    zmsg "An Error Occured in zbuild_exec. exiting."
fi
ZAfter=`date +%s`
let duration=ZAfter-ZBefore
print_formatted_duration $duration
Filename: packInstall.sh. Size: 3kb. View raw, , hex, or download this file.

This paste expires on 2025-07-31 15:57:54.329438. Pasted through web.