#!/usr/bin/env bash set -euf indir=$(dirname "$1") inname=$(basename "$1") out=$(nxgameinfo_cli "$1") ext=${1##*.} id=$(awk -F: '/├ Title ID:/{print $2}' <<<$out |xargs) baseid=$(awk -F: '/Base Title ID:/{print $2}' <<<$out |xargs) version=$(awk -F: '/├ Display Version:/{print $2}' <<<$out |xargs) name=$(awk -F: '/Title Name/{print $2}' <<<$out |xargs) type=$(awk -F: '/Type:/{print $2}' <<<$out | xargs) ! test -n "$id" && echo "Title ID cannot be empty!" && exit 1 ! test -n "$type" && echo "type cannot be empty!" && exit 1 if test "$type" == Base;then ! test -n "$name" && echo "Title Name cannot be empty!" && exit 1 NAME="[$id] $name Base Game.$ext" elif test "$type" == Update;then ! test -n "$name" && echo "Title Name cannot be empty!" && exit 1 ! test -n "$version" && echo "Version cannot be empty!" && exit 1 NAME="[$id] $name Update $version.$ext" elif test "$type" == DLC;then dlcname=$(jq -r --arg id "$id" '.[$id].name' < ~/.switch/titles.US.en.json) if test -n "$dlcname" ;then NAME="[$id] $dlcname DLC.$ext" else ! test -n "$name" && echo "dlcname cannot be found in titles.US.en.json and $name is empty!" && exit 1 NAME="[$id] $name DLC.$ext" fi else echo "unknown type '$type'" exit 1 fi newname=$indir/$NAME if test "$NAME" == "${inname}";then echo "name didn't change,doing nothing" exit 0 fi if test -e "$newname" ;then echo "'$NAME' already exists, will not override" exit 1 fi if test -n "${FORCE:-}" ;then CONFIRM=y else read -p "rename '$inname' to '$NAME' - [y/N]" CONFIRM fi if test -n "${FORCE:-}" -o "$CONFIRM" == "y" -o "$CONFIRM" == "Y";then mv -nv "$1" "$newname" else echo "bailing out" exit 1 fi