comparison dgl/dgamelaunch.conf @ 14:9945b472aac2

Add dgamelaunch configuration to the project.
author John "Elwin" Edwards <elwin@sdf.org>
date Sat, 15 Sep 2012 08:46:06 -0700
parents
children f501c8dd6884
comparison
equal deleted inserted replaced
13:d34f2e40e67d 14:9945b472aac2
1 # rlgallery.org configuration file for dgamelaunch
2
3
4 # Global config variables:
5
6
7 # Max amount of registered users to allow. Has no effect if dgl was
8 # compiled with SQLite
9 maxusers = 4096
10
11 # Allow registration of new nicks? (yes or no)
12 allow_new_nicks = yes
13
14 # Max length for newly registered nicks. Must be less than 20.
15 # By default, NetHack only stores the first 10 chars of a name into
16 # the record/logfile.
17 maxnicklen = 10
18
19 # Set the default watching-screen sorting mode. Can be one of
20 # "unsorted", "username" or "idletime". Unsorted is the default.
21 sortmode = "username"
22
23 # Path to a prepared chroot jail.
24 chroot_path = "/var/dgl/"
25
26 # From inside the jail, dgamelaunch's working directory for rcfiles/ttyrec/etc
27 dglroot = "/dgldir/"
28
29 # Server ID string
30 server_id = "Roguelike Gallery - rlgallery.org"
31
32 # From inside the jail, location of a banner file, the topmost line will be
33 # shown in submenus that cannot be defined separately.
34 # Some string substitution is done for the file:
35 # $VERSION replaced with "dgamelaunch v" + dgl version number.
36 # $SERVERID replaced with the server_id string, as defined above.
37 banner = "/dgldir/dgl-banner"
38
39 # The following two options are fairly insecure. They will force us to
40 # load the password/group database into memory while still having root
41 # privileges. Replace them with shed_uid/shed_gid entries as soon as
42 # possible if you decide to use them. dgamelaunch will inform you of
43 # the uids/gids corresponding to your choices when it loads.
44 #
45 # Note that shed_uid and shed_gid will always take precedence over
46 # shed_user and shed_group if they are specified.
47
48 # shed_user: username to shed privileges to
49 #shed_user = "games"
50 # shed_group: group name to shed privileges to
51 #shed_group = "games"
52
53 # Preferably, you may use the respective gids/uids. This is for Debian:
54 # Use the rodney account instead of games:games
55 shed_uid = 501
56 shed_gid = 501
57
58 # The defaults are usually just fine for this. passwd refers to the file
59 # that stores the user database, and lockfile is only used internally by
60 # dgamelaunch.
61 # passwd doesn't matter if dgl was compiled with SQLite, as the name of
62 # the sqlite database will be defined at compile time.
63 passwd = "/dgldir/dgl-login"
64 lockfile = "/dgldir/dgl-lock"
65
66 #
67 # define some commands that are run when something happens. format is
68 # commands [ <time> ] = <command> ...
69 #
70 # <time> can be one of:
71 # dglstart = when someone telnets in
72 # login = when user has logged in
73 # register = right after a new user is registered
74 # gamestart = just before a game is started
75 #
76 # <command> is:
77 # mkdir "foo" = create a directory "foo"
78 # chdir "foo" = change current work dir to "foo"
79 # cp "foo" "bar" = copy file "foo" to "bar", overwriting previous "bar"
80 # ifnxcp "foo" "bar" = copy file "foo" to "bar", if "bar" doesn't exist
81 # unlink "foo" = delete file "foo"
82 # setenv "foo" "bar" = set environment variable "foo" to "bar"
83 # exec "foo" "bar" = execute "foo" with "bar" as it's param
84 # chpasswd = do the change password prompting, if logged in
85 # chmail = do the change email prompting, if logged in
86 # watch_menu = go to the watching menu
87 # quit = quit dgl
88 # ask_login = do the login prompting, if not logged in
89 # ask_register = do register new user prompting, if not logged in and
90 # registration of new nicks is allowed.
91 # edit_options "foo" = edit options for game which has the short name "foo"
92 # (user must be logged in)
93 # play_game "foo" = start game which has the short name "foo"
94 # (user must be logged in)
95 # submenu "foo" = go to submenu "foo"
96 # return = return from submenu
97 #
98 # The commands will be done inside the chroot and with the uid and gid
99 # defined above.
100 # Parameters to the commands are subject to variable substitution:
101 # %r = dglroot, as defined above
102 # %n = user nick, if user is logged in
103 # %u = shed_uid, as defined above, but numeric
104 # %g = game name, if user has selected a game.
105 #
106 # eg. commands[login] = mkdir "foo", unlink "bar", setenv "Z" "foo"
107 #
108
109 # create the user's dirs when they register
110 commands[register] = mkdir "%ruserdata/%n",
111 mkdir "%rttyrec/%n",
112 mkdir "%rttyrec/%n/rogue3",
113 mkdir "%rttyrec/%n/rogue4",
114 mkdir "%rttyrec/%n/rogue5",
115 mkdir "%rttyrec/%n/srogue",
116 mkdir "%rttyrec/%n/arogue5"
117
118 commands[login] = mkdir "%ruserdata/%n",
119 mkdir "%rttyrec/%n",
120 mkdir "%rttyrec/%n/rogue3",
121 mkdir "%rttyrec/%n/rogue4",
122 mkdir "%rttyrec/%n/rogue5",
123 mkdir "%rttyrec/%n/srogue",
124 mkdir "%rttyrec/%n/arogue5"
125
126
127
128
129
130 # Define the main menus.
131 # You _must_ define "mainmenu_anon" and "mainmenu_user".
132 # $VERSION and $SERVERID will be replaced, as per the bannerfile above.
133
134 # First, the menu shown to anonymous user:
135 menu["mainmenu_anon"] {
136 bannerfile = "/dgldir/dgl_menu_main_anon.txt"
137 cursor = (5,18)
138 commands["l"] = ask_login
139 commands["r"] = ask_register
140 commands["w"] = watch_menu
141 commands["q"] = quit
142 }
143
144 # Then the menu shown when the user has logged in:
145 # $USERNAME in here will be replaced with the user name.
146 menu["mainmenu_user"] {
147 # contents of this file are written to screen.
148 # the file must be inside the chroot.
149 bannerfile = "/dgldir/dgl_menu_main_user.txt"
150 # after which cursor is moved to this location
151 # if cursor-definition is missing, the cursor is put
152 # to the end of the last line of the banner.
153 # cursor = (5,18)
154 # keys we accept. format is
155 # commands["string_of_keys"] = <commandlist>
156 # for example, you could use commands["qQ"] = quit
157 commands["c"] = chpasswd
158 commands["e"] = chmail
159 commands["w"] = watch_menu
160 commands["3"] = play_game "RogV3"
161 commands["4"] = play_game "RogV4"
162 commands["5"] = play_game "RogV5"
163 commands["Ss"] = play_game "SRog"
164 commands["Aa"] = play_game "ARog5"
165 commands["q"] = quit
166 }
167
168 # this menu is shown when user presses '?' in the watching menu
169 menu["watchmenu_help"] {
170 bannerfile = "/dgldir/dgl_menu_watchmenu_help.txt"
171 commands["qQ "] = return
172 }
173
174
175 # Next, we'll define one game's data:
176
177 #DEFINE {
178 # # From inside the jail, the location of the binary to be launched.
179 # game_path = "/bin/nethackstub"
180 #
181 # # Full name of the game
182 # game_name = "NetHack stub"
183 #
184 # # Short name, used in the watching menu
185 # short_name = "NHstb"
186 #
187 # # arguments for when we exec the binary
188 # game_args = "/bin/nethackstub",
189 # "foo",
190 # "user:%n",
191 # "shed_uid:%u",
192 # "bar"
193 #
194 # # From inside the jail, where dgamelaunch should put mail.
195 # spooldir = "/var/mail/"
196 #
197 # # From inside the jail, the default .nethackrc that is copied for new users.
198 # # rc_template = "/dgl-default-rcfile"
199 #
200 # # Make sure the inprogress dir actually exists. default is "inprogress/"
201 # # Each game you define here must have it's own.
202 # inprogressdir = "%rinprogress-nethackstub/"
203 #
204 # # We can also define per-game commands, that are executed
205 # # when the game starts:
206 # # commands = chdir "/dgldir", mkdir "foo_%u_%g"
207 #}
208
209
210 #DEFINE {
211 # game_path = "/nh343/nethack"
212 # game_name = "NetHack 3.4.3"
213 # short_name = "NH343"
214 #
215 # game_args = "/nh343/nethack", "-u", "%n"
216 #
217 # spooldir = "/mail/"
218 # rc_template = "/dgl-default-rcfile.nh343"
219 #
220 # rc_fmt = "%ruserdata/%n/%n.nh343rc"
221 #
222 # inprogressdir = "%rinprogress-nh343/"
223 #
224 ## The place where ttyrecs are stored for this game.
225 ## If this is not defined, ttyrecs are not saved for this game.
226 ## Leaving this undefined also means the games cannot be spectated.
227 # ttyrecdir = "%ruserdata/%n/ttyrec/"
228 #
229 #
230 # # back up savefile
231 # commands = cp "/nh343/var/save/%u%n.gz" "/nh343/var/save/%u%n.gz.bak",
232 # # set NETHACKOPTIONS to point to the rcfile
233 # setenv "NETHACKOPTIONS" "@%ruserdata/%n/%n.nh343rc",
234 # # set up nethack mail stuff, assuming it's compiled with it...
235 # setenv "MAIL" "/mail/%n",
236 # setenv "SIMPLEMAIL" "1",
237 # # don't let the mail file grow
238 # unlink "/mail/%n"
239 #}
240
241 # Rogue V3: short and simple, like the game
242 DEFINE {
243 game_path = "/bin/rogue3"
244 game_name = "Rogue V3 (3.6)"
245 short_name = "RogV3"
246
247 game_args = "/bin/rogue3", "-n", "%n"
248
249 inprogressdir = "%rinprogress-rogue3/"
250 ttyrecdir = "%rttyrec/%n/rogue3/"
251
252 # Don't do anything with rcfiles. Rogue has none.
253
254 # Back up the savefile, just in case
255 commands = cp "/var/games/roguelike/rogue3save/%u-%n.r3sav" "%rbackup/%u-%n.r3sav.bak"
256 }
257
258 # Rogue V4: just like it, but a little different
259 DEFINE {
260 game_path = "/bin/rogue4"
261 game_name = "Rogue V4 (5.2)"
262 short_name = "RogV4"
263
264 game_args = "/bin/rogue4", "-n", "%n"
265 inprogressdir = "%rinprogress-rogue4/"
266 ttyrecdir = "%rttyrec/%n/rogue4/"
267
268 commands = cp "/var/games/roguelike/rogue4save/%u-%n.r4sav" "%rbackup/%u-%n.r4sav.bak"
269 }
270
271 # Rogue V5: a little more different from both
272 DEFINE {
273 game_path = "/bin/rogue5"
274 game_name = "Rogue V5 (5.4)"
275 short_name = "RogV5"
276
277 game_args = "/bin/rogue5", "-n", "%n"
278 inprogressdir = "%rinprogress-rogue5/"
279 ttyrecdir = "%rttyrec/%n/rogue5/"
280
281 commands = cp "/var/games/roguelike/rogue5save/%u-%n.r5sav" "%rbackup/%u-%n.r5sav.bak"
282 }
283
284 # Super-Rogue: different?
285 DEFINE {
286 game_path = "/bin/srogue"
287 game_name = "Super-Rogue"
288 short_name = "SRog"
289
290 game_args = "/bin/srogue", "-n", "%n"
291 inprogressdir = "%rinprogress-srogue/"
292 ttyrecdir = "%rttyrec/%n/srogue/"
293
294 commands = cp "/var/games/roguelike/sroguesave/%u-%n.srsav" "%rbackup/%u-%n.srsav.bak"
295 }
296
297 # Advanced Rogue 5: not different?
298 DEFINE {
299 game_path = "/bin/arogue5"
300 game_name = "Advanced Rogue 5"
301 short_name = "ARog5"
302
303 game_args = "/bin/arogue5", "-n", "%n"
304 inprogressdir = "%rinprogress-arogue5/"
305 ttyrecdir = "%rttyrec/%n/arogue5/"
306
307 commands = cp "/var/games/roguelike/arogue5save/%u-%n.ar5sav" "%rbackup/%u-%n.ar5sav.bak"
308 }