Skip to content

Instantly share code, notes, and snippets.

@sko00o
Last active October 10, 2022 07:30
Show Gist options
  • Save sko00o/c20de64c6b35b1240040c868256bcafc to your computer and use it in GitHub Desktop.
Save sko00o/c20de64c6b35b1240040c868256bcafc to your computer and use it in GitHub Desktop.
Makefile for managing DST(don't starve together) server
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