JetStorm -- A Shellscript collection to ease game server administration ============================================================================== 1. Installing JetStorm does not really need to be installed. Just extract it to somewhere in your home directory, like ~/jetstorm (default). If you do want to install it to another directory (like /usr/local), you can do so, but you will need to tell JetStorm where it is located in order for it to be able to find its command scripts. This can be done by putting a jetstorm.conf file in either /etc/jetstorm.conf, or /usr/local/etc/jetstorm.conf, and defining the JETBASE variable to point to the path jetstorm.sh resides in. Config files are being sourced if found, in this order: /etc/jetstorm.conf /usr/local/etc/jetstorm.conf ~/.jetstorm.conf If none of these exist, JetStorm will exit with an error message about it not being configured. If you want to be able to run jetstorm as a command, consider symlinking jetstorm.sh to ~/bin (and adding that to your PATH if neccessary). Before I forget, there is one thing: The edit* commands will try to use the EDITOR environment variable to start your favorite editor. If that variable is unset, doom will come upon you in form of an error message about an unset variable. You might want to add a line of this sort to your login script: export EDITOR=vi 2. Environment setup Jetstorm _expects_ you to have set up a general repository, in which you keep all your Mods and Plugins (because basically, that's what I'm doing). Per default, this repository is expected to reside in ~/sourcemod, but this can be changed by setting the REPOBASE variable in the configuration. JetStorm does not care about whether or not you use a VCS for the Repo, the repo is simply a common directory from where mods are being symlinked. The expected layout of this repo is just like you would install the mods in the game server: /addons/metamod /sourcemod/plugins /scripting /configs /mapconf /whatever /cfg/<configs> So, nothing special there. Just set up your configs and modules to be as generally-usable as possible, which will save you the hassle of configuring the general stuff every time you install a new server. 3. Game server setup For each game server, JetStorm _expects_ to find a file named jetstorm.conf (see examples/jetstorm_gameserver.conf for an example of this file), which will name a few details about this server and the game it is running. (It also expects you to use one server install for exactly one game, because again, that's what I'm doing). It expects this file to be in the game server root directory (the one that contains steam, srcds_run and all that stuff). If this file is in place, JetStorm is ready to do its magic. 4. Using JetStorm To use JetStorm, cd to the root directory of your game server and run jetstorm.sh (if you symlinked it to your path, simply typing jetstorm should do the trick). You will be greeted with a brief help message that explains the basic command syntax, telling you to use the command "help" in order to get an idea about which commands exist, and what they do. Since these commands are self-documenting, I'm not going to do that here. :) Per default, you can abbreviate commands when calling them if the abbreviation you use is not ambiguous. This means, you can abbreviate the editjet command to "editj" and it will still work; however you can't abbr. it to "edit" because then JetStorm wouldn't be able to tell if you wanted "editjet", "editmeta" or "editplugin". Don't worry, if the abbreviation is abiguous you will get a nice error message, and an indication about the commands that matched your pattern. Note though that the help and editjet commands do not perform this kind of matching. You will need to pass the exact target command as arguments. 5. Hacking JetStorm If you want to create a new command or edit an existing one, the easiest way is by running "jetstorm editjet <command>", which will open the according shell script for you to edit. If you made a new command script which you'd like to donate, please feel free to send it to me at <firstname.lastname@example.org>.