mirror of
https://github.com/Faraphel/Atlas-Install.git
synced 2025-07-05 12:18:21 +02:00
149 lines
4.3 KiB
Bash
149 lines
4.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
#####################################################################
|
|
## __ __ _ ___________ ##
|
|
## \ \ / /| |____ ____| ##
|
|
## \ \ / / | | | | ##
|
|
## \ \ /\ / / | | | | ##
|
|
## \ \/ \/ / | | | | ##
|
|
## \ /\ / | | | | ##
|
|
## \/ \/ |_| |_| ##
|
|
## ##
|
|
## Wiimms ISO Tools ##
|
|
## https://wit.wiimm.de/ ##
|
|
## ##
|
|
#####################################################################
|
|
## ##
|
|
## This file is part of the WIT project. ##
|
|
## Visit https://wit.wiimm.de/ for project details and sources. ##
|
|
## ##
|
|
## Copyright (c) 2009-2021 by Dirk Clemens <wiimm@wiimm.de> ##
|
|
## ##
|
|
#####################################################################
|
|
## ##
|
|
## This file loads the title files from WiiTDB.com ##
|
|
## ##
|
|
#####################################################################
|
|
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
NEEDED="wit tr"
|
|
|
|
BASE_PATH="/usr/local"
|
|
SHARE_PATH="/usr/local/share/wit"
|
|
URI_TITLES=http://gametdb.com/titles.txt
|
|
LANGUAGES="de es fr it ja ko nl pt ru zhcn zhtw"
|
|
|
|
SHARE_DIR=./share
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
CYGWIN=0
|
|
if [[ $1 = --cygwin ]]
|
|
then
|
|
shift
|
|
CYGWIN=1
|
|
SHARE_DIR=.
|
|
export PATH=".:$PATH"
|
|
fi
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
MAKE=0
|
|
if [[ $1 = --make ]]
|
|
then
|
|
# it's called from make
|
|
shift
|
|
MAKE=1
|
|
fi
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
function webget()
|
|
{
|
|
if which wget >/dev/null 2>&1
|
|
then
|
|
wget -qO- "$1"
|
|
elif which curl >/dev/null 2>&1
|
|
then
|
|
curl -fs "$1"
|
|
else
|
|
printf "\e[1;31mWarning: Neither »wget« nor »curl« found!\e[0m\n" >&2
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
function load_and_store()
|
|
{
|
|
local URI="$1"
|
|
local DEST="$2"
|
|
local ADD="$3"
|
|
|
|
echo "*** load $DEST from $URI"
|
|
|
|
if webget "$URI" | wit titles / - >"$DEST.tmp" && test -s "$DEST.tmp"
|
|
then
|
|
if [[ $ADD != "" ]]
|
|
then
|
|
wit titles / "$ADD" "$DEST.tmp" >"$DEST.tmp.2"
|
|
mv "$DEST.tmp.2" "$DEST.tmp"
|
|
fi
|
|
|
|
if [[ -s $DEST ]]
|
|
then
|
|
grep -v ^TITLES "$DEST" >"$DEST.tmp.1"
|
|
grep -v ^TITLES "$DEST.tmp" >"$DEST.tmp.2"
|
|
if ! diff -q "$DEST.tmp.1" "$DEST.tmp.2" >/dev/null
|
|
then
|
|
#echo " => content changed!"
|
|
mv "$DEST.tmp" "$DEST"
|
|
fi
|
|
else
|
|
mv "$DEST.tmp" "$DEST"
|
|
fi
|
|
fi
|
|
rm -f "$DEST.tmp" "$DEST.tmp.1" "$DEST.tmp.2"
|
|
}
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
errtool=
|
|
for tool in $NEEDED
|
|
do
|
|
((CYGWIN)) && [[ -x $tool.exe ]] && continue
|
|
which $tool >/dev/null 2>&1 || errtool="$errtool $tool"
|
|
done
|
|
|
|
if [[ $errtool != "" ]]
|
|
then
|
|
echo "missing tools in PATH:$errtool" >&2
|
|
exit 2
|
|
fi
|
|
|
|
#------------------------------------------------------------------------------
|
|
|
|
mkdir -p "$SHARE_DIR"
|
|
|
|
load_and_store "$URI_TITLES" "$SHARE_DIR/titles.txt"
|
|
|
|
# load language specific title files
|
|
|
|
for lang in $LANGUAGES
|
|
do
|
|
LANG="$( echo $lang | tr '[a-z]' '[A-Z]' )"
|
|
load_and_store $URI_TITLES?LANG=$LANG "$SHARE_DIR/titles-$lang.txt" "$SHARE_DIR/titles.txt"
|
|
done
|
|
|
|
if (( !MAKE && !CYGWIN ))
|
|
then
|
|
echo "*** install titles to $SHARE_PATH"
|
|
mkdir -p "$SHARE_PATH"
|
|
cp -p "$SHARE_DIR"/titles*.txt "$SHARE_PATH"
|
|
fi
|
|
|
|
# remove a possible temp dir in SHARE_PATH
|
|
((CYGWIN)) || rm -rf "$SHARE_PATH/$SHARE_DIR"
|
|
|