forked from Open-RSC/Core-Framework
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
executable file
·112 lines (90 loc) · 5.4 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
include .env
#---------------------------------------------------------------
# Section utilized by various shell scripts within Deployment_Scripts
start-linux:
`pwd`/Start-Linux.sh
run-server:
`pwd`/Deployment_Scripts/run.sh
run-client:
ant -f Client_Base/build.xml runclient
combined-install:
`pwd`/Deployment_Scripts/combined-install.sh
docker-install:
`pwd`/Deployment_Scripts/docker-install.sh
get-updates:
`pwd`/Deployment_Scripts/get-updates.sh
compile:
`pwd`/Deployment_Scripts/get-updates.sh
#---------------------------------------------------------------
# MariaDB-only server container control section
start:
docker-compose -f docker-compose.yml up -d
stop:
docker-compose -f docker-compose.yml down -v
restart:
docker-compose -f docker-compose.yml down -v
docker-compose -f docker-compose.yml up -d
logs:
docker-compose -f docker-compose.yml logs -f
#---------------------------------------------------------------
# Sets a specified username to be in a specified group in a specified database
# Call via "make rank db=cabbage group=0 username=wolf"
rank:
@[ "${db}" ] || ( echo ">> db is not set"; exit 1 )
@[ "${group}" ] || ( echo ">> group is not set"; exit 1 )
@[ "${username}" ] || ( echo ">> username is not set"; exit 1 )
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} -e "USE ${db}; UPDATE players SET group_id = '${group}' WHERE players.username = '${username}';"
# Creates a database that the user specifies the name of
# Call via "make create db=cabbage"
create:
@[ "${db}" ] || ( echo ">> db is not set"; exit 1 )
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} -e "create database ${db};"
# Imports the core.sql and custom.sql files to a specified database
# Call via "make import-core db=preservation"
import-authentic:
@[ "${db}" ] || ( echo ">> db is not set"; exit 1 )
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/core.sql
# Imports the core.sql and custom.sql files to a specified database
# Call via "make import-custom db=cabbage"
import-custom:
@[ "${db}" ] || ( echo ">> db is not set"; exit 1 )
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/core.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_auctionhouse.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_bank_presets.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_clans.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_custom_items.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_custom_npcs.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_custom_objects.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_equipment_tab.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_harvesting.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_ironman.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_npc_kill_counting.sql
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/add_runecraft.sql
# Imports the core.sql and custom.sql files to a specified database
# Call via "make import-retro db=retrorsc"
import-retro:
@[ "${db}" ] || ( echo ">> db is not set"; exit 1 )
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/retro.sql
# Imports specified add-on SQL file
# Call via "make import-addon db=cabbage name=add_custom_items.sql
import-addon:
@[ "${db}" ] || ( echo ">> db is not set"; exit 1 )
docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} < Databases/Addons/${name}
# Creates a database export of the specified database and saves to the output directory specified in the .env file. Good for utilizing as a crontab.
# Call via "make backup db=cabbage"
backup:
@[ "${db}" ] || ( echo ">> db is not set"; exit 1 )
mkdir -p $(MYSQL_DUMPS_DIR)
chmod -R 777 $(MYSQL_DUMPS_DIR)
docker exec mariadb mysqldump -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db} --single-transaction --quick --lock-tables=false | zip > $(MYSQL_DUMPS_DIR)/`date "+%Y%m%d-%H%M-%Z"`-${db}.zip
# Unzips a database backup zip file in the output directory specified in the .env file and then imports it into the specified database as a database restoration from backup method
# Call via "make restore name=20191017-0226-EDT-cabbage.zip db=cabbage"
restore:
@[ "${db}" ] || ( echo ">> db is not set"; exit 1 )
@[ "${name}" ] || ( echo ">> name is not set"; exit 1 )
unzip -p $(MYSQL_DUMPS_DIR)/${name} | docker exec -i mariadb mysql -u${MARIADB_ROOT_USER} -p${MARIADB_ROOT_PASSWORD} ${db}
# Deletes database backup zip files odler than the number of days specified. Good for utilizing as a crontab.
# Call via "clear-backups days=90"
clear-backups:
@[ "${days}" ] || ( echo ">> days is not set"; exit 1 )
find $(MYSQL_DUMPS_DIR)/*.zip -mtime +${days} -exec rm -f {} \;