dgamelaunch/examples/dgamelaunch.conf

294 lines
9.2 KiB
Plaintext

# This is a sample dgamelaunch configuration file. Only bash-style comments
# are allowed, such as this. Each configuration option will be explained
# along with its default value.
# Global config variables:
# Max amount of registered users to allow. Has no effect if dgl was
# compiled with SQLite
maxusers = 64000
# Allow registration of new nicks? (yes or no)
allow_new_nicks = yes
# Max length for newly registered nicks. Must be less than 20.
# By default, NetHack only stores the first 10 chars of a name into
# the record/logfile.
maxnicklen = 10
# Set the default watching-screen sorting mode. Can be one of
# "username", "game", "windowsize", "starttime" or "idletime".
# "username" is the default.
#sortmode = "username"
# Path to a prepared chroot jail.
chroot_path = "/opt/nethack/nethack.alt.org/"
# From inside the jail, dgamelaunch's working directory for rcfiles/ttyrec/etc
dglroot = "/dgldir/"
# Server ID string
server_id = "nethack.alt.org - http://nethack.alt.org/"
# From inside the jail, location of a banner file, the topmost line will be
# shown in submenus that cannot be defined separately.
# Some string substitution is done for the file:
# $VERSION replaced with "dgamelaunch v" + dgl version number.
# $SERVERID replaced with the server_id string, as defined above.
banner = "/dgl-banner"
# The following two options are fairly insecure. They will force us to
# load the password/group database into memory while still having root
# privileges. Replace them with shed_uid/shed_gid entries as soon as
# possible if you decide to use them. dgamelaunch will inform you of
# the uids/gids corresponding to your choices when it loads.
#
# Note that shed_uid and shed_gid will always take precedence over
# shed_user and shed_group if they are specified.
# shed_user: username to shed privileges to
#shed_user = "games"
# shed_group: group name to shed privileges to
#shed_group = "games"
# Preferably, you may use the respective gids/uids. This is for Debian:
shed_uid = 5
shed_gid = 60
# Maximum time in seconds user can idle in the dgamelaunch menus
# before dgl exits. Default value is 0, which disables the idling timer.
# Does not apply to external programs or config editors.
# For setting game idle time, use max_idle_time in the game DEFINE.
# menu_max_idle_time = 1024
# The defaults are usually just fine for this. passwd refers to the file
# that stores the user database, and lockfile is only used internally by
# dgamelaunch.
# passwd doesn't matter if dgl was compiled with SQLite, as the name of
# the sqlite database will be defined at compile time.
passwd = "/dgl-login"
lockfile = "/dgl-lock"
#
# define some commands that are run when something happens. format is
# commands [ <time> ] = <command> ...
#
# <time> can be one of:
# dglstart = when someone telnets in
# login = when user has logged in
# register = right after a new user is registered
# gamestart = just before a game is started
#
# <command> is:
# mkdir "foo" = create a directory "foo"
# chdir "foo" = change current work dir to "foo"
# cp "foo" "bar" = copy file "foo" to "bar", overwriting previous "bar"
# ifnxcp "foo" "bar" = copy file "foo" to "bar", if "bar" doesn't exist
# unlink "foo" = delete file "foo"
# setenv "foo" "bar" = set environment variable "foo" to "bar"
# exec "foo" "bar" = execute "foo" with "bar" as it's param
# chpasswd = do the change password prompting, if logged in
# chmail = do the change email prompting, if logged in
# watch_menu = go to the watching menu
# quit = quit dgl
# ask_login = do the login prompting, if not logged in
# ask_register = do register new user prompting, if not logged in and
# registration of new nicks is allowed.
# edit_options "foo" = edit options for game which has the short name "foo"
# (user must be logged in)
# play_game "foo" = start game which has the short name "foo"
# (user must be logged in)
# submenu "foo" = go to submenu "foo"
# return = return from submenu
#
# The commands will be done inside the chroot and with the uid and gid
# defined above.
# Parameters to the commands are subject to variable substitution:
# %r = dglroot, as defined above
# %n = user nick, if user is logged in
# %u = shed_uid, as defined above, but numeric
# %g = game name, if user has selected a game.
# %s = short game name, if user has selected a game.
#
# eg. commands[login] = mkdir "foo", unlink "bar", setenv "Z" "foo"
#
# create the user's dirs when they register
commands[register] = mkdir "%ruserdata/%n",
mkdir "%ruserdata/%n/dumplog",
mkdir "%ruserdata/%n/ttyrec"
commands[login] = mkdir "%ruserdata/%n",
mkdir "%ruserdata/%n/dumplog",
mkdir "%ruserdata/%n/ttyrec"
# Define the main menus.
# You _must_ define "mainmenu_anon" and "mainmenu_user".
# $VERSION and $SERVERID will be replaced, as per the bannerfile above.
# First, the menu shown to anonymous user:
menu["mainmenu_anon"] {
bannerfile = "dgl_menu_main_anon.txt"
cursor = (5,18)
commands["l"] = ask_login
commands["r"] = ask_register
commands["w"] = watch_menu
commands["q"] = quit
}
# Then the menu shown when the user has logged in:
# $USERNAME in here will be replaced with the user name.
menu["mainmenu_user"] {
# contents of this file are written to screen.
# the file must be inside the chroot.
bannerfile = "dgl_menu_main_user.txt"
# after which cursor is moved to this location
# if cursor-definition is missing, the cursor is put
# to the end of the last line of the banner.
# cursor = (5,18)
# keys we accept. format is
# commands["string_of_keys"] = <commandlist>
# for example, you could use commands["qQ"] = quit
commands["c"] = chpasswd
commands["e"] = chmail
commands["w"] = watch_menu
commands["o"] = edit_options "NH343"
commands["p"] = play_game "NH343"
commands["q"] = quit
}
# this menu is shown when user presses '?' in the watching menu
menu["watchmenu_help"] {
bannerfile = "dgl_menu_watchmenu_help.txt"
commands["qQ "] = return
}
# Next, we'll define one game's data:
#DEFINE {
# # From inside the jail, the location of the binary to be launched.
# game_path = "/bin/nethackstub"
#
# # Full name of the game
# game_name = "NetHack stub"
#
# # Short name, used in the watching menu
# short_name = "NHstb"
#
# # arguments for when we exec the binary
# game_args = "/bin/nethackstub",
# "foo",
# "user:%n",
# "shed_uid:%u",
# "bar"
#
# # From inside the jail, where dgamelaunch should put mail.
# spooldir = "/var/mail/"
#
# # From inside the jail, the default .nethackrc that is copied for new users.
# # rc_template = "/dgl-default-rcfile"
#
# # If player idles longer than max_idle_time seconds, the game will
# # receive a sighup. Default value is 0, which disables the idling timer.
# max_idle_time = 2000
#
# # Make sure the inprogress dir actually exists. default is "inprogress/"
# # Each game you define here must have it's own.
# inprogressdir = "%rinprogress-nethackstub/"
#
# # We can also define per-game commands, that are executed
# # when the game starts:
# # commands = chdir "/dgldir", mkdir "foo_%u_%g"
#}
#
# the second game
#
#
DEFINE {
game_path = "/nh343/nethack"
game_name = "NetHack 3.4.3"
short_name = "NH343"
game_args = "/nh343/nethack", "-u", "%n"
spooldir = "/mail/"
rc_template = "/dgl-default-rcfile.nh343"
rc_fmt = "%ruserdata/%n/%n.nh343rc"
inprogressdir = "%rinprogress-nh343/"
# The place where ttyrecs are stored for this game.
# If this is not defined, ttyrecs are not saved for this game.
# Leaving this undefined also means the games cannot be spectated.
ttyrecdir = "%ruserdata/%n/ttyrec/"
# back up savefile
commands = cp "/nh343/var/save/%u%n.gz" "/nh343/var/save/%u%n.gz.bak",
# set NETHACKOPTIONS to point to the rcfile
setenv "NETHACKOPTIONS" "@%ruserdata/%n/%n.nh343rc",
# set up nethack mail stuff, assuming it's compiled with it...
setenv "MAIL" "/mail/%n",
setenv "SIMPLEMAIL" "1",
# don't let the mail file grow
unlink "/mail/%n"
}
#
# third game
#
#
#DEFINE {
# game_path = "/bin/crawlss017"
# game_name = "Crawl Stone Soup 0.1.7"
# short_name = "Cr017"
#
# game_args = "/bin/crawlss017",
# "-name", "%n",
# "-dir", "/crawlss017/",
# "-rc", "%rrcfiles/%n.crawlrc",
# "-morgue", "/crawlss017/morgues/",
# "-macro", "/crawlss017/macros/%n.macro"
#
# rc_template = "/dgl-default-rcfile.crawl"
# rc_fmt = "%rrcfiles/%n.crawlrc"
# inprogressdir = "%rinprogress-crawlss017/"
#}
#
# fourth game
#
#
#DEFINE {
# game_path = "/bin/crawlss020"
# game_name = "Crawl Stone Soup 0.2.0"
# short_name = "Cr020"
#
# game_args = "/bin/crawlss020",
# "-name", "%n",
# "-dir", "/crawlss020/",
# "-rc", "/crawlss020/plr/%n/%n.crawlrc",
# "-morgue", "/crawlss020/plr/%n/",
# "-macro", "/crawlss020/plr/%n/"
#
# rc_template = "/dgl-default-rcfile.crawl"
# rc_fmt = "/crawlss020/plr/%n/%n.crawlrc"
# inprogressdir = "%rinprogress-crawlss020/"
#}