#!/usr/bin/env zsh set -e show_status() { local name=$1 local state=${2:-ready} print -r -- "$name: $state" } require_name() { if (( $# == 0 )); then print -r -u2 -- "usage: require_name " return 1 fi show_status "$1" "accepted" } show_status "backup" "complete" require_name "deploy" require_name || show_status "argument-check" "failed"