diff --git a/bash/gilded_rose.sh b/bash/gilded_rose.sh new file mode 100755 index 00000000..d1d32b34 --- /dev/null +++ b/bash/gilded_rose.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +update_quality() { + local IFS=',' + + while read -r name sell_in_str quality_str; do + declare -i sell_in="$sell_in_str" + declare -i quality="$quality_str" + + if [[ $name != "Aged Brie" && $name != "Backstage passes to a TAFKAL80ETC concert" ]]; then + if ((quality > 0)); then + if [[ $name != "Sulfuras, Hand of Ragnaros" ]]; then + ((quality--)) + fi + fi + else + if ((quality < 50)); then + ((quality++)) + + if [[ $name == "Backstage passes to a TAFKAL80ETC concert" ]]; then + if ((sell_in < 11)) && ((quality < 50)); then + ((quality++)) + fi + if ((sell_in < 6)) && ((quality < 50)); then + ((quality++)) + fi + fi + fi + fi + + if [[ $name != "Sulfuras, Hand of Ragnaros" ]]; then + ((sell_in--)) + + if ((sell_in < 0)); then + if [[ $name != "Aged Brie" ]]; then + if [[ $name != "Backstage passes to a TAFKAL80ETC concert" ]]; then + if ((quality > 0)); then + if [[ $name != "Sulfuras, Hand of Ragnaros" ]]; then + ((quality--)) + fi + fi + else + quality=0 + fi + else + if ((quality < 50)); then + ((quality++)) + fi + fi + fi + fi + + echo "$name,$sell_in,$quality" + done +} + +update_quality