diff options
| author | merakor <cem@ckyln.com> | 2020-12-20 21:18:47 +0000 | 
|---|---|---|
| committer | merakor <cem@ckyln.com> | 2020-12-20 21:18:47 +0000 | 
| commit | 9aab40bc5d33350c5bfb3a6d86a783b9c243ec68 (patch) | |
| tree | cc8f03451445b6381a49f732a3be842ab907effe | |
| parent | 2b62486c4e07a6fd10a4900d125b5c55da5ecd91 (diff) | |
| download | cpt-9aab40bc5d33350c5bfb3a6d86a783b9c243ec68.tar.gz | |
config.rc: better helper functions
FossilOrigin-Name: 616fa2758bb01ad6f314baa41abb361b53194e62407bdc7ecd2320be41073334
| -rw-r--r-- | config.rc | 27 | 
1 files changed, 19 insertions, 8 deletions
| @@ -39,6 +39,8 @@ setv EMACS    = emacs  setv MAKEINFO = makeinfo  # Helper functions +target=$1 basename=$2 dest=$3 +  redo_clean() {      # Clean function for various redo implementations      [ -r .do_built ] && { @@ -52,15 +54,24 @@ redo_clean() {      [ "$REDO_BASE" ] || rm -rf -- .redo  } +targcheck() { +    # Usage: targcheck [target...] +    # +    # Check if current target is one of the given arguments of this function. +    # Returns 0 if target is one of the arguments, returns 1 if not. +    case " $* " in *" $target "*) return 0; esac; return 1 +} +  PHONY() { -    # Function that resembles the .PHONY: target on the classic 'make' build -    # system. -    [ "$1" ] || { -        trap 'rm -f $3' EXIT INT -        return 0 -    } -    setv PHONY += "$@" -    trap 'case " $PHONY " in *" $1 "*) rm -f $3; esac' EXIT INT +    # Usage: PHONY [[target...]] +    # +    # Function that resembles the .PHONY: target on the classic 'make' system. +    # You can either use it without an argument on a single target, or specify +    # multiple targets. +    if [ -z "$1" ] || targcheck "$@"; then +        # shellcheck disable=2064 +        trap "rm -f $dest" EXIT INT +    fi  }  getbin() { | 
