Skip to content

Instantly share code, notes, and snippets.

@NikkyAI
Created December 19, 2016 22:20
Show Gist options
  • Save NikkyAI/969395970bc377c4c8723d539cbd6855 to your computer and use it in GitHub Desktop.
Save NikkyAI/969395970bc377c4c8723d539cbd6855 to your computer and use it in GitHub Desktop.
#!/bin/bash
#!/bin/bash
DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
launcher=Launcher
upload_folder=$DIR/.upload/.launcher/
tools=.
URLBASE="https://nikky.moe/mc/.launcher/"
echo $DIR
name=launcher
pack_name=launcher
json_name=latest
_fancy=-dark
cd $DIR
mkdir $upload_folder
function copy () {
FOLDER="$launcher/$1/build/libs/"
ARG2=${2:-$1.jar}
ARG3=${3:-$upload_folder}
DEST="$ARG3/$ARG2"
FILE=$( find $FOLDER | grep all | sort -n | tail -1 )
VERSION=$( echo $FILE | sed 's/[^0-9\.]*\([0-9\.]*-[a-Z]*\)-all.jar/\1/' )
echo "$ARG2 version $VERSION"
cp -v $FILE $DEST
}
function json () {
VERSION=${1:-VERSION}
URL=$URLBASE/${2:-no_file_provided}
JSONFILE=$upload_folder/${3:-"$(basename $URL ".jar.pack").json"}
json="{\n \"version\": \"$VERSION\",\n \"url\": \"$URL\"\n}"
echo -e $json > $JSONFILE
echo -e "$JSONFILE = $json"
}
function pack () {
FOLDER="$launcher/$1/build/libs/"
echo $FOLDER
ARG2=${2:-$1.jar}
PACK_FILE="$ARG2.pack"
DEST="$upload_folder/$PACK_FILE"
FILE=$( find $FOLDER | grep all | sort -n | tail -1 )
VERSION=$( echo $FILE | sed 's/[^0-9\.]*\([0-9\.]*-[a-Z]*\)-all.jar/\1/' )
json_string=$(json $VERSION $PACK_FILE $3)
echo $json_string
echo "$2 version $VERSION"
echo "packing $FILE -> $DEST"
pack200 --no-gzip $DEST $FILE
}
cd $launcher
git pull
#clean build
$launcher/gradlew -p $launcher/ clean build
echo "copy files from $launcher into $upload_folder"
copy launcher-bootstrap $name.jar
copy launcher-bootstrap-fancy $name$_fancy.jar
echo "copy creator-tools and launcher builder from $launcher into $tools"
copy creator-tools "" $tools
copy launcher-builder "" $tools
echo "package launcher jars from $launcher into $upload_folder"
pack launcher "$pack_name.jar" $json_name.json
pack launcher-fancy "$pack_name-dark.jar" $json_name$_fancy.json
cd $DIR
. upload.sh
#!/bin/bash
DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
upload_folder=$DIR/.upload/modpacks
modpacks=( magical_mayhem ftb_unstable lite_pack )
cd $DIR
mkdir $upload_folder
for modpack in "${modpacks[@]}"; do
version=${modpack}_`date +%Y.%m.%d.%H%M%S`
java -jar $DIR/launcher-builder-4.3-SNAPSHOT-all.jar \
--version $version \
--input $DIR/modpacks/$modpack \
--output $upload_folder \
--manifest-dest $upload_folder/$modpack.json
mkdir $upload_folder/$modpack
$DIR/filetree.py \
--out $upload_folder/$modpack/index.html \
--pack $modpack
done
#cd $DIR
echo "\`\`\`" > $upload_folder/_h5ai.header.md
tree modpacks \
-P "*.jar|*.cfg|*.yml" \
-I _upload loaders \
>> $upload_folder/_h5ai.header.md
echo "\`\`\`" >> $upload_folder/_h5ai.header.md
sh $DIR/upload.sh
#!/bin/bash
server='pp-treedi_l2jlj@mc.nikky.moe'
#remote_path='public/mods'
modpack=lite_pack
temp_folder=/tmp/server_upload/$modpack
cd "$(dirname "$0")"
rm -R $temp_folder/mods
java -cp launcher-builder-4.3-SNAPSHOT-all.jar com.skcraft.launcher.builder.ServerCopyExport \
--source modpacks/$modpack/src \
--dest $temp_folder \
&& \
curl -k -X GET \
-H "X-Access-Server: XXXXX-XXXX-XXXX-XXXXX-XXXXXXXX" \
-H "X-Access-Token: XXXXX-XXXX-XXXX-XXXXX-XXXXXXXX" \
"https://mc.nikky.moe:5656/server/power/off" \
&& \
rsync -avz $temp_folder/mods/ -e "ssh -p 9029" $server:public/mods \
--exclude '*.url.txt' \
--exclude '*.info.json' \
--update \
--delete \
--info=progress2
curl -k -X GET \
-H "X-Access-Server: XXXXX-XXXX-XXXX-XXXXX-XXXXXXXX" \
-H "X-Access-Token: XXXXX-XXXX-XXXX-XXXXX-XXXXXXXX" \
"https://mc.nikky.moe:5656/server/power/on"
rm -R $temp_folder
rm -R /tmp/server_upload/
#!/bin/python3
# -*- coding: utf-8 -*-
import argparse
import subprocess
from bs4 import *
import re
from urllib.parse import unquote
import os
from subprocess import check_output
parser = argparse.ArgumentParser(description="Download mods from curseforge and other sources")
parser.add_argument("--dir", help="dir")
parser.add_argument("--out", help="output file")
parser.add_argument("--pack", help="pack name")
args, unknown = parser.parse_known_args()
print(check_output(['pwd']))
html = check_output(['tree', 'modpacks/{args.pack}'.format(**locals()),
'-T', 'Directory Listing',
'-I', 'loaders|*.url.txt|*.info.json',
'--sort=name',
'--noreport', '--dirsfirst',
'-H', 'https://nikky.moe/mc/modpacks/{args.pack}'.format(**locals())
])
pattern = r'https://nikky.moe/mc/modpacks/{args.pack}/src/(?P<mod>.+)'.format(**locals())
soup = BeautifulSoup(html)
for anchor in soup.find_all('a', href=True):
print(anchor)
url = anchor['href']
text = anchor.contents[0]
if url.endswith('_CLIENT/'):
anchor.replaceWith('CLIENT')
elif url.endswith('_SERVER/'):
anchor.replaceWith('SERVER')
elif url.endswith('/'):
anchor.replaceWith(text)
else:
match = re.match(pattern, url)
if match:
mod = match.group('mod')
path = unquote('modpacks/{}/src/{}.url.txt'.format(args.pack, mod))
if os.path.isfile(path):
url_txt = open(path, 'r').read()
anchor['href'] = url_txt
else:
anchor.replaceWith(text)
else:
anchor.replaceWith(text)
for div in soup.find_all("p", {'class':'VERSION'}):
div.decompose()
html = str(soup)
print(html)
with open(args.out, "w") as file:
file.write(html)
#!/bin/bash
upload_folder=.upload/
static_folder=static/
cd $(cd -P -- "$(dirname -- "$0")" && pwd -P)
rsync -av --update $static_folder $upload_folder
find $upload_folder -type d -empty -delete
rsync -av --update --delete --info=progress2 $upload_folder ~/websites/nikky.moe/mc/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment