Split up script functionality

This commit is contained in:
Alpyne 2020-07-21 18:49:05 -07:00
parent e9bd77d96b
commit b65ff99e17
6 changed files with 54 additions and 39 deletions

1
clean.sh Normal file
View File

@ -0,0 +1 @@
rm -rf src client.mappings client.jar client.txt

View File

@ -2,50 +2,11 @@
# USAGE: bash create-branch.sh <version> <branch_flags>
mc_version_manifest='https://launchermeta.mojang.com/mc/game/version_manifest.json'
enigma='java -jar enigma/enigma-cli/build/libs/enigma-cli-0.21+local-all.jar'
# check dependencies. this script requires jq
if [ $(dpkg-query -W -f='${Status}' jq 2>/dev/null | grep -c "ok installed") -eq 0 ];
then
echo "'jq' is not installed, run 'sudo apt-get install jq' to use this script"
exit
fi
# new branch
echo "Creating branch '$1'"
git branch -D $1 || true
git checkout $2 $1
# find our version.json file
echo 'Reading version_manifest.json...'
json_file=$(curl -s $mc_version_manifest | jq -r --arg version $1 '.versions[] | select(.id == $version).url')
# find jar and mappings url
echo "Reading $1.json..."
json_file_contents=$(curl -s $json_file)
client_jar=$(echo $json_file_contents | jq -r '.downloads.client.url')
client_mappings=$(echo $json_file_contents | jq -r '.downloads.client_mappings.url')
# download client.jar
echo "Downloading client.jar..."
curl -# -o client.jar $client_jar
# download client.txt
echo "Downloading ProGuard mappings: client.txt..."
curl -# -o client.txt $client_mappings
# remove current src directory
rm -rf src
echo "Converting ProGuard mappings to Engima mappings: client.mappings..."
$enigma convert-mappings proguard client.txt enigma_file client.mappings
mkdir src
echo "Decompiling client.jar..."
$enigma decompile procyon client.jar src client.mappings
echo "Committing changes..."
git add src
git add client.txt

View File

@ -4,6 +4,9 @@ branch_flags=--orphan
cat versions.txt | while read line
do
./clean.sh
./setup-mappings.sh $line
./decompile-mc.sh
./create-branch.sh $line $branch_flags
branch_flags=-b
done

10
decompile-mc.sh Normal file
View File

@ -0,0 +1,10 @@
#!/usr/bin/env bash
# clear out current src directory
rm -rf src
mkdir src
echo "Decompiling client.jar..."
#procyon, cfr
./enigma.sh decompile procyon client.jar src client.mappings

4
enigma.sh Normal file
View File

@ -0,0 +1,4 @@
# TODO: at what version does this start giving snowmans.
# TODO: does cfr decompiler also give snowmans
java -jar enigma/enigma-cli/build/libs/enigma-cli-0.21+local-all.jar $@

36
setup-mappings.sh Normal file
View File

@ -0,0 +1,36 @@
#!/usr/bin/env bash
# USAGE: bash setup-mappings.sh <version>
mc_version_manifest='https://launchermeta.mojang.com/mc/game/version_manifest.json'
# check dependencies. this script requires jq
if [ $(dpkg-query -W -f='${Status}' jq 2>/dev/null | grep -c "ok installed") -eq 0 ];
then
echo "'jq' is not installed, run 'sudo apt-get install jq' to use this script"
exit
fi
# find our version.json file
echo 'Reading version_manifest.json...'
json_file=$(curl -s $mc_version_manifest | jq -r --arg version $1 '.versions[] | select(.id == $version).url')
# find jar and mappings url
echo "Reading $1.json..."
json_file_contents=$(curl -s $json_file)
client_jar=$(echo $json_file_contents | jq -r '.downloads.client.url')
client_mappings=$(echo $json_file_contents | jq -r '.downloads.client_mappings.url')
# download client.jar
echo "Downloading client.jar..."
curl -# -o client.jar $client_jar
# download client.txt
echo "Downloading ProGuard mappings: client.txt..."
curl -# -o client.txt $client_mappings
# delete old mappings
rm -rf client.mappings
echo "Converting ProGuard mappings to Engima mappings: client.mappings..."
./enigma.sh convert-mappings proguard client.txt enigma client.mappings