Compare commits
No commits in common. "a422e84b6fcdbb40d23b74c96cb52324a1691edc" and "250fed28124d7ef3b0f182affd114a51dfc9cb9b" have entirely different histories.
a422e84b6f
...
250fed2812
13
README.md
13
README.md
|
@ -22,17 +22,4 @@ Takes curseforge minecraft modpacks and installs them without the closed-source,
|
||||||
7. Launch `./install.sh`
|
7. Launch `./install.sh`
|
||||||
8. Profit..?
|
8. Profit..?
|
||||||
|
|
||||||
### TODO
|
|
||||||
|
|
||||||
- Fabric support
|
|
||||||
- GUI, if I have too much time
|
|
||||||
- better urlencoding if the current bodge breaks
|
|
||||||
|
|
||||||
### Contact the author (suggestions, DMCA, etc.)
|
|
||||||
|
|
||||||
I can be reached for any inquires via my e-mail: me (at) sdomi.pl. I also have a webpage - https://sdomi.pl/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gosh i love not agreeing to TOS
|
gosh i love not agreeing to TOS
|
||||||
|
|
32
parsePack.sh
32
parsePack.sh
|
@ -3,35 +3,22 @@ if [[ $1 == '' ]]; then
|
||||||
echo "usage: $0 <modpack.zip>"
|
echo "usage: $0 <modpack.zip>"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
token="$(dirname $(realpath $0))/token"
|
|
||||||
meow="$(realpath $1)"
|
meow="$(realpath $1)"
|
||||||
|
|
||||||
if [[ ! -f "$token" ]]; then
|
|
||||||
echo "No tokenfile found. Try running ./getToken.sh..?"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir packwrk; cd packwrk
|
mkdir packwrk; cd packwrk
|
||||||
7z -y x "$meow"
|
7z -y x "$meow"
|
||||||
|
|
||||||
# fetch mods
|
# fetch mods
|
||||||
if [[ ! -d mods ]]; then
|
if [[ ! -d mods ]]; then
|
||||||
mkdir mods; cd mods
|
mkdir mods; cd mods
|
||||||
mods="$(cat ../manifest.json | jq -r '.files[] | "\(.projectID),\(.fileID)"')"
|
cat ../manifest.json | jq -r '.files[] | "\(.projectID),\(.fileID)"' | while read line; do
|
||||||
echo "Downloading $(wc -l <<< "$mods") mods"
|
|
||||||
while read line; do
|
|
||||||
proj=${line/,*/}
|
proj=${line/,*/}
|
||||||
file=${line/*,/}
|
file=${line/*,/}
|
||||||
|
|
||||||
url="$(curl -s -H "x-api-key: $(cat $token)" \
|
url="$(curl -r -s -H "x-api-key: $(cat ../../token)" "https://api.curseforge.com/v1/mods/$proj/files/$file" | jq -r '.data.downloadUrl')"
|
||||||
"https://api.curseforge.com/v1/mods/$proj/files/$file" \
|
curl -s -O -J -L "$url" &
|
||||||
| jq -r '.data.downloadUrl' \
|
done
|
||||||
| sed 's/\[/%5b/g;s/\]/%5d/g;'"s/'/%27/g;s/ /%20/g")" #' handling for bad URLs
|
|
||||||
curl -s -o $(basename "$url") -L "$url" || echo "Failed to download $url" &
|
|
||||||
printf "."
|
|
||||||
done <<< "$mods"
|
|
||||||
wait
|
wait
|
||||||
echo "Done"
|
|
||||||
cd ..
|
cd ..
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -40,15 +27,8 @@ modloader="$(cat manifest.json | jq -r '.minecraft | "\(.version),\(.modLoaders[
|
||||||
if [[ $modloader == *"forge"* ]]; then
|
if [[ $modloader == *"forge"* ]]; then
|
||||||
mc=${modloader/,*/}
|
mc=${modloader/,*/}
|
||||||
forge=${modloader/*,forge-/}
|
forge=${modloader/*,forge-/}
|
||||||
|
curl -L -O "https://maven.minecraftforge.net/net/minecraftforge/forge/$mc-$forge/forge-$mc-$forge-installer.jar"
|
||||||
# handling for old forge binary names
|
java -jar "forge-$mc-$forge-installer.jar"
|
||||||
if [[ $(grep -Poh "(1\.10$|1\.9|1\.8|1\.7|1\.6|1\.5|1\.4|1\.3|1\.2|1\.1)" <<< "$mc") == '' ]]; then
|
|
||||||
curl -L -O "https://maven.minecraftforge.net/net/minecraftforge/forge/$mc-$forge/forge-$mc-$forge-installer.jar"
|
|
||||||
java -jar "forge-$mc-$forge-installer.jar"
|
|
||||||
else
|
|
||||||
curl -L -O "https://maven.minecraftforge.net/net/minecraftforge/forge/$mc-$forge-$mc/forge-$mc-$forge-$mc-installer.jar"
|
|
||||||
java -jar "forge-$mc-$forge-$mc-installer.jar"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo "mmmm my attention span is too short for fabric rn"
|
echo "mmmm my attention span is too short for fabric rn"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue