diff --git a/mkdeck.sh b/mkdeck.sh index 05dd226..5108945 100755 --- a/mkdeck.sh +++ b/mkdeck.sh @@ -19,33 +19,41 @@ shell_sanitize() { suit_cards() { local name="$(shell_sanitize "$1")" - local suits="$(eval "echo \$${name}_SUITS")" + local suits=n"$(eval "echo \$${name}_SUITS")" local suit_cards="$(eval "echo \$${name}_SUIT_CARDS")" + for suit in $suits; do for suit_card in $suit_cards; do printf "${suit}${suit_card} " done done + eval "echo \$${name}_ADDITIONAL_CARDS" } -mkdeck() { +mkdeck_dir() { local dir="$1" - local deck_name="$2" - - local cards="$(suit_cards "$deck_name")" - if test -z "$cards"; then - echo "No cards found for deck $deck_name. Check your environment variables:" - echo "${deck_name}_SUITS, ${deck_name}_SUIT_CARDS, and ${deck_name}_ADDITIONAL_CARDS." - fi if test ! -d "$dir"; then mkdir "$dir" fi if test ! -d "$dir"; then - echo "Failed to create deck directory at $dir." - return 2 + 1>&2 echo "Failed to create deck directory at $dir." + exit 2 + fi +} + + +mkdeck_cards() { + local dir="$1" + local deck_name="$2" + local cards="$(suit_cards "$deck_name")" + + if test -z "$cards"; then + 1>&2 echo "No cards found for deck $deck_name. Check your environment variables:" + 1>&2 echo "${deck_name}_SUITS, ${deck_name}_SUIT_CARDS, and ${deck_name}_ADDITIONAL_CARDS." + exit 3 fi for card in $cards; do @@ -54,4 +62,12 @@ mkdeck() { } +mkdeck() { + local dir="$1" + local deck_name="$2" + mkdeck_dir "$dir" + mkdeck_cards "$dir" "$deck_name" +} + + mkdeck "$1" "FRENCH"