2022-08-16 16:12:37 -04:00

204 lines
4.9 KiB
Bash

#!/bin/bash
# This script manages all of the various individual changes
# for dreambuilder, e.g. updating mods, copying file components,
# making changes to the code, etc.
upstream_mods_path="/home/vanessa/Minetest-related/mods"
if [ ! -d "$upstream_mods_path" ] ; then
if [ ! -z $1 ] ; then
upstream_mods_path=$1
else
echo "Script does not appear to be running on Vanessa's PC, so you must supply a mods path."
exit 1
fi
fi
workdir="/run/shm/dreambuilder_modpack"
modpack_path=$upstream_mods_path"/my_mods/dreambuilder_modpack"
rm -rf $modpack_path/* $workdir*
mkdir $workdir
touch $workdir/modpack.txt
echo -e "\nBring all mods up-to-date from "$upstream_mods_path
cd $upstream_mods_path
# No trailing slashes on these items' paths!
LINK_MODS_LIST="my_mods/biome_lib \
my_mods/coloredwood \
my_mods/currency \
my_mods/gloopblocks \
my_mods/ilights \
my_mods/moretrees \
my_mods/misc_overrides \
my_mods/nixie_tubes \
my_mods/led_marquee \
my_mods/pipeworks \
my_mods/signs_lib \
my_mods/basic_signs \
my_mods/street_signs \
my_mods/unifieddyes \
my_mods/simple_streetlights \
my_mods/basic_materials \
my_mods/dreambuilder_hotbar \
Calinous_mods/bedrock \
Calinous_mods/maptools \
Calinous_mods/moreores \
Sokomines_mods/cottages \
Sokomines_mods/locks \
Sokomines_mods/travelnet \
Sokomines_mods/windmill \
RBAs_mods/datastorage \
RBAs_mods/framedglass \
RBAs_mods/unified_inventory \
Mossmanikins_mods/memorandum \
cheapies_mods/plasticbox \
cheapies_mods/prefab_redo \
cheapies_mods/invsaw \
cheapies_mods/unifiedmesecons \
cheapies_mods/digistuff \
cheapies_mods/rgblightstone \
cheapies_mods/solidcolor \
cheapies_mods/arrowboards \
cheapies_mods/digidisplay \
cheapies_mods/display_blocks_redo \
Jeijas_mods/digilines \
Jeijas_mods/jumping \
TenPlus1s_mods/farming \
TenPlus1s_mods/bees \
TenPlus1s_mods/bakedclay \
TenPlus1s_mods/cblocks \
TenPlus1s_mods/bonemeal \
TenPlus1s_mods/ambience \
tumeninodes-mods/facade \
Zeg9s_mods/steel \
DonBatmans_mods/mymillwork \
HybridDogs_mods/titanium \
HybridDogs_mods/function_delayer \
quartz \
stained_glass \
gardening \
caverealms_lite \
deezls_mods/extra_stairsplus \
blox \
new_campfire \
item_drop"
COPY_MODS_LIST="my_mods/dreambuilder_mp_extras \
nekogloops_mods/glooptest \
Calinous_mods/moreblocks \
CWzs_mods/replacer \
CWzs_mods/player_textures \
bobblocks \
unifiedbricks"
LINK_MODPACKS_LIST="$(ls -d my_mods/homedecor_modpack/*/) \
$(ls -d my_mods/plantlife_modpack/*/) \
$(ls -d Zeg9s_mods/ufos/*/) \
$(ls -d Jeijas_mods/mesecons/*/) \
$(ls -d cheapies_mods/roads/*/) \
$(ls -d cool_trees/*/)"
COPY_MODPACKS_LIST="$(ls -d RBAs_mods/technic/*/) \
$(ls -d Philipbenrs_mods/castle-modpack/*/) \
$(ls -d worldedit/*/)"
for i in $LINK_MODS_LIST; do
ln -s $upstream_mods_path"/"$i $workdir
done
for i in $(echo $LINK_MODPACKS_LIST |sed "s:/ : :g; s:/$::"); do
ln -s $upstream_mods_path"/"$i $workdir
done
for i in $COPY_MODS_LIST; do
rsync -a $upstream_mods_path"/"$i $workdir --exclude .git*
done
for i in $(echo $COPY_MODPACKS_LIST |sed "s:/ : :g; s:/$::"); do
rsync -a $upstream_mods_path"/"$i $workdir --exclude .git*
done
# above, all the stuff of the form $(ls -d foo/*/) are modpacks
# those special commands copy out just the folders from within.
echo -e "\nConfigure Dreambuilder and its mods..."
# Disable some components
rm -f $workdir/dreambuilder_mp_extras/models/character.b3d
rm -rf $workdir/orbs_of_time
rm -f $workdir/bobblocks/trap.lua
touch $workdir/bobblocks/trap.lua
rm -f $workdir/replacer/inspect.lua
touch $workdir/replacer/inspect.lua
rm -rf $workdir/wrench
sed -i "s/bucket//" \
$workdir/unifiedbricks/depends.txt
sed -i "s/mesecons =/foo =/" \
$workdir/bobblocks/blocks.lua
sed -i "s/LOAD_OTHERGEN_MODULE = true/LOAD_OTHERGEN_MODULE = false/" \
$workdir/glooptest/module.cfg
sed -i 's/"stairsplus_in_creative_inventory", true)/"stairsplus_in_creative_inventory", false)/' \
$workdir/moreblocks/config.lua
echo "moreblocks.stairsplus_in_creative_inventory (Display Stairs+ nodes in creative inventory) bool false" \
> $workdir/moreblocks/settingtypes.txt
rm -rf $workdir/worldedit_brush
# Add in all of the regular player skins for the player_textures mod
rm -f $workdir/player_textures/textures/*
LIST="player_Calinou.png
player_cheapie.png
player_crazyginger72.png
player_Evergreen.png
player_Jordach.png
player_kaeza.png
player_oOChainLynxOo.png
player_PilzAdam_back.png
player_PilzAdam.png
player_playzooki.png
player_sdzen.png
player_ShadowNinja.png
player_shadowzone.png
player_Sokomine.png
player_VanessaE.png
player_Zeg9.png"
while read -r FILE; do
cp $upstream_mods_path"/../player_skins/"$FILE \
$workdir/player_textures/textures
done <<< "$LIST"
ln -s $upstream_mods_path"/my_mods/dreambuilder_mp_extras/readme.md" $workdir
rsync -aL \
--exclude=".git*" \
$workdir"/" \
$workdir"_no_git"
rsync -aL \
$workdir"_no_git/" \
$modpack_path
rm -rf $workdir*
echo -e "\nCustomization completed. Here's what will be included in the modpack:\n"
ls -a $modpack_path