Last active
October 10, 2022 07:30
-
-
Save sko00o/c20de64c6b35b1240040c868256bcafc to your computer and use it in GitHub Desktop.
Makefile for managing DST(don't starve together) server
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CMDPKGURL := "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | |
CMDPATH := steamcmd | |
CMDFILE := steamcmd.sh | |
GAMEPATH := "Steam/steamapps/common/Don't Starve Together Dedicated Server/bin" | |
GAMEFILE := dontstarve_dedicated_server_nullrenderer | |
DATAPATH := $(PWD)/.klei | |
SAVEFILE := DoNotStarveServer | |
SAVEFILECAVE := DoNotStarveCaves | |
BAKPATH := dst_backup | |
MODSETPATH := "Steam/steamapps/common/Don't Starve Together Dedicated Server/mods" | |
MODFILE := "dedicated_server_mods_setup.lua" | |
TIMESTR = $(shell date '+%F-%H-%M') | |
.PHONY: set-mod | |
set-mod: | |
@echo "Open mod setting file" | |
vim $(MODSETPATH)/$(MODFILE) | |
.PHONY: prep-sys | |
prep-sys: | |
@echo "System Library Preparing" | |
sudo apt install -y screen lib32gcc1 lib32stdc++6 libcurl4-gnutls-dev | |
@echo "System Library Prepare Finished" | |
.PHONY: prep-cmd | |
prep-cmd: | |
@echo "Steam Command Line Files Preparing" | |
ifeq ($(wildcard $(CMDPATH)),) | |
mkdir -p $(CMDPATH) && \ | |
cd $(CMDPATH) && \ | |
wget $(CMDPKGURL) && \ | |
tar -xvzf steamcmd_linux.tar.gz | |
endif | |
@echo "Steam Command Line Files Prepare Finished" | |
.PHONY: prep | |
prep: prep-sys prep-cmd | |
.PHONY: prep-srv | |
prep-srv: prep-cmd | |
@echo "Preparing Server Files" | |
$(CMDPATH)/$(CMDFILE) +login anonymous +app_update 343050 validate +quit | |
.PHONY: prep-srv-cave | |
prep-srv-cave: prep-cmd | |
@echo "Preparing Cave Server Files" | |
$(CMDPATH)/$(CMDFILE) +login anonymous +app_update 343050 -beta cavesbeta validate +quit | |
.PHONY: start | |
start: | |
screen -dm -S "dst_master" \ | |
$(GAMEPATH)/$(GAMEFILE) -console \ | |
-cluster $(SAVEFILE) \ | |
-shard Master | |
.PHONY: start-cave | |
start-cave: | |
screen -dm -S "dst_cave" \ | |
$(GAMEPATH)/$(GAMEFILE) -console \ | |
-cluster $(SAVEFILECAVE) \ | |
-shard Caves | |
.PHONY: backup | |
backup: | |
@echo "Choose File To Backup" | |
if [ -d $(DATAPATH) ]; then \ | |
mkdir -p $(BAKPATH); \ | |
$(MAKE) backup-save; \ | |
$(MAKE) backup-save-cave; \ | |
fi | |
backup-save: | |
if [ -d $(DATAPATH)/$(SAVEFILE) ]; then \ | |
tar -czf $(SAVEFILE)_$(TIMESTR).tar.gz -C $(DATAPATH) $(SAVEFILE) && \ | |
mv $(SAVEFILE)_$(TIMESTR).tar.gz $(BAKPATH)/ ;\ | |
echo "File $(SAVEFILE) Is Backuped" \ | |
fi | |
backup-save-cave: | |
if [ -d $(DATAPATH)/$(SAVEFILECAVE) ]; then \ | |
tar -czf $(SAVEFILECAVE)_$(TIMESTR).tar.gz -C $(DATAPATH) $(SAVEFILECAVE) && \ | |
mv $(SAVEFILECAVE)_$(TIMESTR).tar.gz $(BAKPATH)/ ;\ | |
echo "File $(SAVEFILECAVE) Is Backuped" \ | |
fi | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment