#!/bin/sh -ef bi() { # Build and install function for cpt. # # shellcheck disable=2317 parser_definition() { setup REST help:usage -- "usage: ${0##*/} bi [-dfSty] [--root ROOT] [pkg...]" msg -- '' 'Options:' flag CPT_TEST -t --test export:1 init:@export -- "Run tests (if they exist)" flag CPT_DEBUG -d --debug export:1 init:@export -- "Keep the build directories after operation" flag CPT_NOSTRIP -S --nostrip export:1 init:@export -- "Don't strip debug information from the binaries" \ "(might want to add '-g' to your '\$CFLAGS')" global_options } eval "$(getoptions parser_definition parse "$0")" parse "$@" eval set -- "$REST" cpt-build "$@" # When building multiple packages, cpt will already ask to install # the packages, so no need for this here. [ "$2" ] || cpt-install "$@" } cbi() { # Checksum, build and install. # # shellcheck disable=2317 parser_definition() { setup REST help:usage -- "usage: ${0##*/} cbi [-dfSsty] [--root ROOT] [pkg...]" msg -- '' 'Options:' flag CPT_TEST -t --test export:1 init:@export -- "Run tests (if they exist)" flag CPT_DEBUG -d --debug export:1 init:@export -- "Keep the build directories after operation" flag CPT_NOSTRIP -S --nostrip export:1 init:@export -- "Don't strip debug information from the binaries" \ "(might want to add '-g' to your '\$CFLAGS')" flag sha -s -- "Generate checksums using the depracated sha256 algorithm" global_options } eval "$(getoptions parser_definition parse "$0")" parse "$@" eval set -- "$REST" cpt-checksum "$@"; cpt-build "$@" [ "$2" ] || cpt-install "$@" } if [ -f ./cpt-lib ]; then . ./cpt-lib; else . cpt-lib; fi # If none of the tools below are specified, we will reenable glob unset glob [ "$1" ] && { arg=$1; shift; } case "$arg" in --help|-h|'') log "Carbs Packaging Tool" set -- for path in $(SEARCH_PATH=$PATH pkg_find cpt-* all -x); do set -- "${path##*/cpt-}" "$@" max=$((${#1} > max ? ${#1} : max)) done for path; do printf "%b->%b %-${max}s " "$colorb" "$colre" "${path#*/cpt-}" awk 'NR==2{if(/^# /){sub(/^# */,"");print}else print "";exit}' \ "$(command -v "cpt-$path")" done | sort -uk1 >&2 exit ;; --version|-v|version) version ;; # Reserve these arguments for the following tools. a|alternatives) arg=alternatives ;; b|build) arg=build ;; c|checksum) arg=checksum ;; d|download) arg=download ;; i|install) arg=install ;; l|list) arg=list ;; r|remove) arg=remove ;; s|search) arg=search ;; u|update) arg=update ;; bi|cbi) "$arg" "$@"; exit "$?" ;; *) glob=1 ;; esac util=$(SEARCH_PATH=$PATH pkg_find "cpt-$arg${glob:+*}" "" -x 2>/dev/null) || die "'cpt $arg' is not a valid command" "$util" "$@"