GET5-CLI
get5-cli
is an application for modifying get5
configuration files from the command line.
Usage
./get5-cli -1 "red team" -2 "blue team" -m de_dust2 -m de_inferno -m de_nuke
Get List of Command Line Arguments
./get5-cli /help
How It Works
get5-cli
loads a "base" get5
configuration file, combines it with values passed in via the CLI (command line interface), generates a new
get5
config file, and then launches a CSGO instance with get5
using the generated config.
Project Structure
/cmd/get5-cli
is the command line application.
/pkg/get5
is the base library for the program, intended to be imported by other programs such as
sourceseer.
Motivation
Get5 is a standalone SourceMod plugin for CS:GO servers for running matches.
It is originally based on pugsetup and is inspired by
eBot. The core idea behind get5 is the ability to define all match details in a single config file;
the main target use-case being tournaments and leagues (online or LAN). All that is required of the server-admins is to load match config
file to the server and the match should run without any more manual actions from the admins.
At Laclede's LAN we run the majority of our game servers in Docker fo reasons
that are explained here. To be able to
containerize get5
we need a way to dynamically inject get5 config files into the docker container.
Why GO(lang) was Chosen
When choosing a language our key requirement was to able to compile native-binaries that could be added directly to Docker images without
needing to include additional required dependencies. GO fit this criteria; and since we had multiple active projects being written in GO
when this project was started it was a natural fit for our organization.
Developer Notes
- This project includes configuration for golangci-lint; install the lint runner locally and
then used the associated VSCode task to launch.