Add 'chdir' per-game config variable, which defines the dir where dgl will chdir to before executing the game.
git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@350 db0b04b0-f4d1-0310-9a6d-de3e77497b0e
This commit is contained in:
parent
f64b9da317
commit
59254ed4b7
1
config.l
1
config.l
|
@ -63,6 +63,7 @@ COMMENT ^#.*
|
|||
"chroot_path" { return TYPE_PATH_CHROOT; }
|
||||
"game_name" { return TYPE_NAME_GAME; }
|
||||
"game_path" { return TYPE_PATH_GAME; }
|
||||
"chdir" { return TYPE_PATH_CHDIR; }
|
||||
"dglroot" { return TYPE_PATH_DGLDIR; }
|
||||
"spooldir" { return TYPE_PATH_SPOOL; }
|
||||
"banner" { return TYPE_PATH_BANNER; }
|
||||
|
|
8
config.y
8
config.y
|
@ -31,6 +31,7 @@ static const char* lookup_token (int t);
|
|||
}
|
||||
|
||||
%token TYPE_SUSER TYPE_SGROUP TYPE_SGID TYPE_SUID TYPE_MAX TYPE_MAXNICKLEN
|
||||
%token TYPE_PATH_CHDIR
|
||||
%token TYPE_PATH_GAME TYPE_NAME_GAME TYPE_PATH_DGLDIR TYPE_PATH_SPOOL
|
||||
%token TYPE_PATH_BANNER TYPE_PATH_CANNED TYPE_PATH_CHROOT TYPE_GAMENUM
|
||||
%token TYPE_PATH_PASSWD TYPE_PATH_LOCKFILE TYPE_PATH_SAVEFILEFMT
|
||||
|
@ -138,6 +139,11 @@ KeyPair: KeyType '=' TYPE_VALUE {
|
|||
myconfig[ncnf]->game_name = strdup($3);
|
||||
break;
|
||||
|
||||
case TYPE_PATH_CHDIR:
|
||||
if (myconfig[ncnf]->chdir) free(myconfig[ncnf]->chdir);
|
||||
myconfig[ncnf]->chdir = strdup ($3);
|
||||
break;
|
||||
|
||||
case TYPE_PATH_DGLDIR:
|
||||
if (globalconfig.dglroot) free(globalconfig.dglroot);
|
||||
globalconfig.dglroot = strdup($3);
|
||||
|
@ -291,6 +297,7 @@ KeyType : TYPE_SUSER { $$ = TYPE_SUSER; }
|
|||
| TYPE_PATH_CHROOT { $$ = TYPE_PATH_CHROOT; }
|
||||
| TYPE_PATH_GAME { $$ = TYPE_PATH_GAME; }
|
||||
| TYPE_NAME_GAME { $$ = TYPE_NAME_GAME; }
|
||||
| TYPE_PATH_CHDIR { $$ = TYPE_PATH_CHDIR; }
|
||||
| TYPE_PATH_DGLDIR { $$ = TYPE_PATH_DGLDIR; }
|
||||
| TYPE_PATH_SPOOL { $$ = TYPE_PATH_SPOOL; }
|
||||
| TYPE_PATH_BANNER { $$ = TYPE_PATH_BANNER; }
|
||||
|
@ -317,6 +324,7 @@ const char* lookup_token (int t)
|
|||
case TYPE_MAXNICKLEN: return "maxnicklen";
|
||||
case TYPE_GAMENUM: return "game_num";
|
||||
case TYPE_PATH_CHROOT: return "chroot_path";
|
||||
case TYPE_PATH_CHDIR: return "chdir";
|
||||
case TYPE_PATH_GAME: return "game_path";
|
||||
case TYPE_NAME_GAME: return "game_name";
|
||||
case TYPE_PATH_DGLDIR: return "dglroot";
|
||||
|
|
|
@ -45,6 +45,7 @@ struct dg_config
|
|||
{
|
||||
char* game_path;
|
||||
char* game_name;
|
||||
char* chdir;
|
||||
char* lockfile;
|
||||
char* passwd;
|
||||
char* rcfile;
|
||||
|
|
|
@ -21,6 +21,7 @@ struct dg_config defconfig = {
|
|||
/* chroot = */ /*"/var/lib/dgamelaunch/",*/
|
||||
/* game_path = */ "/bin/nethack",
|
||||
/* game_name = */ "NetHack",
|
||||
/* chdir = */ NULL,
|
||||
/* dglroot = *//* "/dgldir/",*/
|
||||
/* lockfile = */ "/dgl-lock",
|
||||
/* passwd = */ "/dgl-login",
|
||||
|
@ -332,7 +333,6 @@ create_config ()
|
|||
if (!myconfig[tmp]->savefilefmt) myconfig[tmp]->savefilefmt = defconfig.savefilefmt;
|
||||
if (!myconfig[tmp]->inprogressdir) myconfig[tmp]->inprogressdir = defconfig.inprogressdir;
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (!globalconfig.chroot) globalconfig.chroot = "/var/lib/dgamelaunch/";
|
||||
|
|
Loading…
Reference in New Issue