Skip to content

Instantly share code, notes, and snippets.

@SkirnirMaNGOS
Created December 19, 2010 16:37
Show Gist options
  • Save SkirnirMaNGOS/747461 to your computer and use it in GitHub Desktop.
Save SkirnirMaNGOS/747461 to your computer and use it in GitHub Desktop.
YTDB import script | lots of cat, ls and sed
#!/bin/bash
RELEASE="57"
mangosDir="/home/[user]/source/mangos"
ytdbDir="/home/[user]/source/ytdbase"
ytdbCur="$ytdbDir/R$RELEASE"
mangosSql="$mangosDir/sql/updates"
sd2Sql="/home/[user]/source/scriptdev2/sql/Updates"
hostname=127.0.0.1
username=mangos
userpass=mangos
userport=3306
databasename=mangos
databasenamesd2=scriptdev2
custom="/home/[user]/source/custom"
# fetch from YTDB release MaNGOS revision
cd $ytdbCur
rm *.sql
ls -R > /tmp/files.txt
grep MaNGOS /tmp/files.txt > /tmp/f1a.txt
awk -F "_" '{print $5}' /tmp/f1a.txt > /tmp/f1b.txt
7z x YTDB_*.7z
sed 's/R//' /tmp/f1b.txt > /tmp/f1c.txt
ls *MaNGOS*sql* > /tmp/f1d.txt
sed -e "s/^/mysql --host=$hostname --user=$username --password=$userpass --port=$userport $databasename < /" /tmp/f1d.txt > /tmp/f1e.txt
# create head for ytdb.sh
sed '/MaNGOS/ {
i\'#!/bin/bash'
i\ cd '$ytdbCur'
a\ cd '$mangosSql'
}' /tmp/f1e.txt > /tmp/f1.txt
ytdbRev="$(head /tmp/f1c.txt)"
echo "$ytdbRev YTDB starting revision
-- collecting ytdb Updates"
cat /tmp/files.txt | grep mangos_FIX > /tmp/f2a.txt
# bash does not read ( and ) so change it to \( and \)
sed 's|(|\\\(|g;s|)|\\\)|g' /tmp/f2a.txt > /tmp/f2a1.txt
# fetch revision number this updatepack was created for
# add it: $revisionnumber $filename
# afterwards delete the revision number from the updatepacks
grep mangos_FIX /tmp/files.txt | sed 's/\(.*\)\..*/\1/;s|(||g; s|)||g' > /tmp/f2.txt
awk -F"_" '{ print $4}' /tmp/f2.txt > /tmp/f2b.txt
paste -d " " /tmp/f2b.txt /tmp/f2a1.txt > /tmp/f2.txt
echo "-- collecting MaNGOS Updates"
cd $mangosSql
ls *mangos* | awk ' $1 > '$ytdbRev'' > /tmp/mangosUpdates.txt
# combine MaNGOS updates and YTDB updates and sort their order of appearance
cat /tmp/mangosUpdates.txt /tmp/f2.txt > /tmp/f3a.txt
sort -n /tmp/f3a.txt > /tmp/f3b.txt
cut -d " " -f2 /tmp/f3b.txt > /tmp/f3.txt
# add mysql command and add a line where to cd for and after importing this file
sed -e "s/^/mysql --host=$hostname --user=$username --password=$userpass --port=$userport $databasename < /" /tmp/f3.txt > /tmp/f4a.txt
sed '/mangos_FIX/ {
i\ cd '$ytdbCur'/Updates
a\ cd '$mangosSql'
}' /tmp/f4a.txt > /tmp/f4.txt
echo "-- collecting ScriptDev2 Updates"
awk -F "_" '{print $7}' /tmp/f1a.txt > /tmp/f5a.txt
sed 's/R//' /tmp/f5a.txt > /tmp/f5b.txt
sd2Rev="$(head /tmp/f5b.txt)"
# fetch revision number this updatepack was created for
# add it: $revisionnumber $filename
# afterwards delete the revision number from the updatepacks
cd $sd2Sql
echo "$sd2Rev ScriptDev2 starting revision"
ls *mangos* > /tmp/files2.txt
awk -F"_" '{ print $1}' /tmp/files2.txt > /tmp/f5b2.txt
sed 's/r//' /tmp/f5b2.txt > /tmp/f5b3.txt
paste -d " " /tmp/f5b3.txt /tmp/files2.txt > /tmp/f5b4.txt
awk ' $1 > '$sd2Rev'' /tmp/f5b4.txt > /tmp/f5c.txt
cut -d " " -f2 /tmp/f5c.txt > /tmp/f5c1.txt
# add mysql command and add a head line where to cd for importing this file
# since SD2 is independet from YTDB updates, this only needs to be done once
echo " cd $sd2Sql" > /tmp/f5d.txt
sed -e "s/^/mysql --host=$hostname --user=$username --password=$userpass --port=$userport $databasename < /" /tmp/f5c1.txt > /tmp/f5e.txt
cat /tmp/f5d.txt /tmp/f5e.txt > /tmp/f5.txt
# add SD2 full scripts file
echo " cd $sd2Sql/../
mysql --host=$hostname --user=$username --password=$userpass --port=$userport $databasenamesd2 < scriptdev2_script_full.sql" > /tmp/f6.txt
# add custom files with path where to find them and mysql command
echo " cd $custom" > /tmp/f7a.txt
cd $custom
ls > /tmp/f7b.txt
sed -e "s/^/mysql --host=$hostname --user=$username --password=$userpass --port=$userport $databasename < /" /tmp/f7b.txt > /tmp/f7c.txt
cat /tmp/f7a.txt /tmp/f7c.txt > /tmp/f7.txt
echo "-- generate Output File. chmod 755 that file and run it"
cat /tmp/f1.txt /tmp/f4.txt /tmp/f5.txt /tmp/f6.txt /tmp/f7.txt> /home/[user]/Desktop/ytdb.sh
cd /tmp/
rm f1a.txt f1b.txt f1c.txt f1d.txt f1e.txt f1.txt f2a1.txt f2a.txt f2b.txt f2.txt f3a.txt f3b.txt f3.txt f4a.txt f4.txt f5a.txt f5b2.txt f5b3.txt f5b4.txt f5b.txt f5c1.txt f5c.txt f5d.txt f5e.txt f5.txt f6.txt f7a.txt f7b.txt f7c.txt f7.txt files2.txt files.txt mangosUpdates.txt
echo "-- done"
DELETE FROM creature WHERE id IN (8720,8671,9859);
INSERT INTO `creature` VALUES
(81259,8671,0,1,1,0,0,-4948.01,-901.528,505.172,3.80482,430,0,0,6645,0,0,0),
(81264,8720,0,1,1,0,0,-4963.19,-904.619,505.17,5.42797,430,0,0,6645,0,0,0),
(81272,9859,0,1,1,0,0,-4967.86,-917.619,505.169,0.785398,430,0,0,6645,0,0,0);
#!/bin/bash
cd /home/[user]/source/ytdbase/R57
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < YTDB_0.14.0_R570_MaNGOS_R10650_SD2_R1847_ACID_R306_RuDB_R38.4.sql
cd /home/[user]/source/mangos/sql/updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10654_01_mangos_game_event_creature_quest.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10660_01_mangos_game_event_quest.sql
cd /home/[user]/source/ytdbase/R57/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 571_mangos_FIX_\(10675\).sql
cd /home/[user]/source/mangos/sql/updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10679_01_mangos_npc_vendor_template.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10679_02_mangos_creature_template.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10682_01_mangos_item_convert.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10704_01_mangos_gossip_menu_option.sql
cd /home/[user]/source/ytdbase/R57/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 572_mangos_FIX_\(10709\).sql
cd /home/[user]/source/mangos/sql/updates
cd /home/[user]/source/ytdbase/R57/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 573_mangos_FIX_\(10726\).sql
cd /home/[user]/source/mangos/sql/updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10742_01_mangos_spell_bonus_data.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10743_01_mangos_spell_chain.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10743_02_mangos_spell_bonus_data.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10746_01_mangos_mangos_string.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10749_01_mangos_mangos_string.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10762_01_mangos_spell_proc_event.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10764_01_mangos_spell_proc_event.sql
cd /home/[user]/source/ytdbase/R57/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 574_mangos_FIX_\(10779\).sql
cd /home/[user]/source/mangos/sql/updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10786_01_mangos_spell_proc_item_enchant.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10786_02_mangos_spell_proc_event.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10788_01_mangos_creature_addon.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10788_02_mangos_creature_template_addon.sql
cd /home/[user]/source/ytdbase/R57/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 575_mangos_FIX_\(10803\).sql
cd /home/[user]/source/mangos/sql/updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10835_01_mangos_spell_proc_event.sql
cd /home/[user]/source/ytdbase/R57/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 576_mangos_FIX_\(10842\).sql
cd /home/[user]/source/mangos/sql/updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10863_01_mangos_spell_proc_event.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10864_01_mangos_spell_proc_event.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10867_01_mangos_npc_trainer_template.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10867_02_mangos_creature_template.sql
cd /home/[user]/source/ytdbase/R57/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 577_mangos_FIX_\(10878\).sql
cd /home/[user]/source/mangos/sql/updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10883_01_mangos_spell_proc_event.sql
cd /home/[user]/source/ytdbase/R57/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 578_mangos_FIX_\(10905\).sql
cd /home/[user]/source/mangos/sql/updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10906_01_mangos_spell_proc_event.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < 10906_02_mangos_spell_bonus_data.sql
cd /home/[user]/source/scriptdev2/sql/Updates
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1850_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1851_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1853_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1859_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1862_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1863_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1864_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1865_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1869_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1871_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1875_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1876_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1878_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1881_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1888_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1889_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1890_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1891_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1899_mangos.sql
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < r1913_mangos.sql
cd /home/[user]/source/scriptdev2/sql/Updates/../
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 scriptdev2 < scriptdev2_script_full.sql
cd /home/[user]/source/custom
mysql --host=127.0.0.1 --user=mangos --password=mangos --port=3306 mangos < ironforge_ah.sql
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment