Clarify a few scripts

This commit is contained in:
Sotr
2020-04-10 19:12:12 +07:00
parent c42aca9d76
commit 7f43fec40c
7 changed files with 94 additions and 94 deletions

6
akarin
View File

@@ -3,8 +3,6 @@
# exit immediately if a command exits with a non-zero status # exit immediately if a command exits with a non-zero status
set -e set -e
gitcmd="git -c commit.gpgsign=false"
source "./scripts/functions.sh" source "./scripts/functions.sh"
failed=0 failed=0
@@ -59,10 +57,10 @@ case "$1" in
mvn clean deploy && cd ../${FORK_NAME}-Server && mvn clean install mvn clean deploy && cd ../${FORK_NAME}-Server && mvn clean install
) )
;; ;;
"up" | "upstream") "up" | "upstream" | "update")
( (
cd "$basedir" cd "$basedir"
scripts/upstream.sh "$2" scripts/upstream.sh "$basedir" $2
) )
;; ;;
"r" | "root") "r" | "root")

View File

@@ -1 +1 @@
1.15.2--99217db2846f72f0abfcfd07feb393a105293442 1.15.2--23ee0a8a889f352889907369b58c361a1b19f7ac

View File

@@ -7,6 +7,8 @@ PAPER_API_REPO=""
PAPER_SERVER_REPO="" PAPER_SERVER_REPO=""
MCDEV_REPO="" MCDEV_REPO=""
gitcmd="git -c commit.gpgsign=false"
# DIR configure # DIR configure
# resolve shell-specifics # resolve shell-specifics
case "$(echo "$SHELL" | sed -E 's|/usr(/local)?||g')" in case "$(echo "$SHELL" | sed -E 's|/usr(/local)?||g')" in
@@ -35,6 +37,10 @@ function basedir {
cd "$basedir" cd "$basedir"
} }
function paperdir {
cd "$basedir/Paper"
}
# COLOUR functions # COLOUR functions
color() { color() {
if [ $2 ]; then if [ $2 ]; then
@@ -94,3 +100,11 @@ function cleanupPatches {
fi fi
done done
} }
function containsElement {
local e
for e in "${@:2}"; do
[[ "$e" == "$1" ]] && return 0;
done
return 1
}

View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
# get base dir regardless of execution location
basedir=$1
source "$basedir/scripts/functions.sh"
paperVer=$(cat current-paper)
paperworkdir="$basedir/Paper/work"
minecraftversion=$(cat $paperworkdir/BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
decompile="$paperworkdir/Minecraft/$minecraftversion/spigot"
# create dev dir
basedir
mkdir -p mc-dev/src/net/minecraft/server
cd mc-dev
# prepare to push
if [ ! -d ".git" ]; then
gitcmd init
fi
# reset dev files to spigot
rm src/net/minecraft/server/*.java
cp $decompile/net/minecraft/server/*.java src/net/minecraft/server
# diff and only preserve new added files
paperserver="$basedir/Paper/Paper-Server/src/main/java/net/minecraft/server"
cd $basedir/mc-dev/src/net/minecraft/server/
for file in $(/bin/ls $paperserver)
do
if [ -f "$file" ]; then
rm -f "$file"
fi
done
# push the dev project
cd $basedir/mc-dev
gitcmd add . -A
gitcmd commit . -m "$paperVer"
gitcmd tag -a "$paperVer" -m "$paperVer" 2>/dev/null
push . $MCDEV_REPO $paperVer

View File

@@ -1,40 +0,0 @@
#!/usr/bin/env bash
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
. $(dirname $SOURCE)/init.sh
cd $basedir
paperVer=$(cat current-paper)
minecraftversion=$(cat $basedir/Paper/work/BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
decompile="Paper/work/Minecraft/$minecraftversion/spigot"
mkdir -p mc-dev/src/net/minecraft/server
cd mc-dev
if [ ! -d ".git" ]; then
git init
fi
rm src/net/minecraft/server/*.java
cp $basedir/$decompile/net/minecraft/server/*.java src/net/minecraft/server
base="$basedir/Paper/Paper-Server/src/main/java/net/minecraft/server"
cd $basedir/mc-dev/src/net/minecraft/server/
for file in $(/bin/ls $base)
do
if [ -f "$file" ]; then
rm -f "$file"
fi
done
cd $basedir/mc-dev
git add . -A
git commit . -m "mc-dev"
git tag -a "$paperVer" -m "$paperVer" 2>/dev/null
pushRepo . $MCDEV_REPO $paperVer

View File

@@ -1,28 +1,17 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SOURCE="${BASH_SOURCE[0]}" # get base dir regardless of execution location
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink basedir=$1
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
. $(dirname $SOURCE)/init.sh
workdir="$basedir"/Paper/work source "$basedir/scripts/functions.sh"
paperworkdir="$basedir/Paper/work"
minecraftversion=$(cat "$basedir"/Paper/work/BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4) minecraftversion=$(cat "$basedir"/Paper/work/BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
decompiledir=$workdir/Minecraft/$minecraftversion/spigot decompiledir=$paperworkdir/Minecraft/$minecraftversion/spigot
nms="net/minecraft/server" nms="net/minecraft/server"
export MODLOG="" export MODLOG=""
cd "$basedir" basedir
function containsElement {
local e
for e in "${@:2}"; do
[[ "$e" == "$1" ]] && return 0;
done
return 1
}
export importedmcdev="" export importedmcdev=""
function import { function import {
@@ -54,7 +43,7 @@ function importLibrary {
target="$basedir/Paper/Paper-Server/src/main/java/$file" target="$basedir/Paper/Paper-Server/src/main/java/$file"
targetdir=$(dirname "$target") targetdir=$(dirname "$target")
mkdir -p "${targetdir}" mkdir -p "${targetdir}"
base="$workdir/Minecraft/$minecraftversion/libraries/${group}/${lib}/$file" base="$paperworkdir/Minecraft/$minecraftversion/libraries/${group}/${lib}/$file"
if [ ! -f "$base" ]; then if [ ! -f "$base" ]; then
echo "Missing $base" echo "Missing $base"
exit 1 exit 1
@@ -67,7 +56,7 @@ function importLibrary {
( (
cd Paper/Paper-Server/ cd Paper/Paper-Server/
lastlog=$(git log -1 --oneline) lastlog=$(git log -1 --oneline)
if [[ "$lastlog" = *"Tuinity-Extra mc-dev Imports"* ]]; then if [[ "$lastlog" = *"Akarin extra mc-dev Imports"* ]]; then
git reset --hard HEAD^ git reset --hard HEAD^
fi fi
) )
@@ -113,6 +102,6 @@ importLibrary com.mojang datafixerupper com/mojang/datafixers/util Either.java
cd Paper/Paper-Server/ cd Paper/Paper-Server/
rm -rf nms-patches rm -rf nms-patches
git add src -A git add src -A
echo -e "Tuinity-Extra mc-dev Imports\n\n$MODLOG" | git commit src -F - echo -e "Akarin extra mc-dev Imports\n\n$MODLOG" | git commit src -F -
exit 0 exit 0
) )

View File

@@ -1,53 +1,49 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# exit immediately if a command exits with a non-zero status
set -e
# get base dir regardless of execution location # get base dir regardless of execution location
SOURCE="${BASH_SOURCE[0]}" basedir=$1
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" source "$basedir/scripts/functions.sh"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
. $(dirname $SOURCE)/init.sh
git submodule update --init --recursive git submodule update --init --recursive
if [[ "$1" == up* ]]; then if [[ "$2" == reset* ]]; then
( paperdir
cd "$basedir/Paper/" gitcmd fetch && gitcmd reset --hard origin/master
git fetch && git reset --hard origin/master basedir
cd ../ gitcmd add Paper
git add Paper
)
fi fi
# patch paper
paperVer=$(gethead Paper) paperVer=$(gethead Paper)
cd "$basedir/Paper/" paperdir
./paper patch ./paper patch
cd "Paper-Server" cd "Paper-Server"
mcVer=$(mvn -o org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=minecraft_version | sed -n -e '/^\[.*\]/ !{ /^[0-9]/ { p; q } }') mcVer=$(mvn -o org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=minecraft_version | sed -n -e '/^\[.*\]/ !{ /^[0-9]/ { p; q } }')
basedir basedir
. "$basedir"/scripts/importmcdev.sh "$basedir"/scripts/importmcdev.sh $1
minecraftversion=$(cat "$basedir"/Paper/work/BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4) minecraftversion=$(cat "$basedir"/Paper/work/BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
version=$(echo -e "Paper: $paperVer\nmc-dev:$importedmcdev") version=$(echo -e "Paper: $paperVer\nmc-dev:$importedmcdev")
tag="${minecraftversion}-${mcVer}-$(echo -e $version | shasum | awk '{print $1}')" tag="${minecraftversion}-${mcVer}-$(echo -e $version | shasum | awk '{print $2}')"
echo "$tag" > "$basedir"/current-paper echo "$tag" > "$basedir"/current-paper
"$basedir"/scripts/generatesources.sh "$basedir"/scripts/generateImports.sh $1
paperdir
cd Paper/
function tag { function tag {
( cd $2
cd $1 if [ "$3" == "1" ]; then
if [ "$2" == "1" ]; then
git tag -d "$tag" 2>/dev/null git tag -d "$tag" 2>/dev/null
fi fi
echo -e "$(date)\n\n$version" | git tag -a "$tag" -F - 2>/dev/null echo -e "$(date)\n\n$version" | git tag -a "$tag" -F - 2>/dev/null
)
} }
echo "Tagging as $tag" echo "Tagging as $tag"
echo -e "$version" echo -e "$version"
@@ -59,6 +55,5 @@ fi
tag Paper-API $forcetag tag Paper-API $forcetag
tag Paper-Server $forcetag tag Paper-Server $forcetag
pushRepo Paper-API $PAPER_API_REPO $tag push Paper-API $PAPER_API_REPO $tag
pushRepo Paper-Server $PAPER_SERVER_REPO $tag push Paper-Server $PAPER_SERVER_REPO $tag