ma pkgs.nsrenamer: init
This commit is contained in:
parent
1d78ac0d6a
commit
a07a40b018
3
makefu/5pkgs/nsrenamer/default.nix
Normal file
3
makefu/5pkgs/nsrenamer/default.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{ pkgs,... }:
|
||||||
|
# TODO: dependencies: coreutils, nx_game_info,
|
||||||
|
pkgs.writeScriptBin "nsrenamer" ./nsrenamer.sh
|
58
makefu/5pkgs/nsrenamer/nsrenamer.sh
Executable file
58
makefu/5pkgs/nsrenamer/nsrenamer.sh
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user