]> skyeroc.xyz Git - dgamelaunch/commitdiff
Add a new configuration file command ifnxcp that allows file copying without overwrit...
authorPasi Kallinen <paxed@alt.org>
Sun, 13 Jan 2008 00:12:59 +0000 (00:12 +0000)
committerPasi Kallinen <paxed@alt.org>
Sun, 13 Jan 2008 00:12:59 +0000 (00:12 +0000)
git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@410 db0b04b0-f4d1-0310-9a6d-de3e77497b0e

config.l
dgamelaunch.h
dgl-common.c
examples/dgamelaunch.conf

index 09e10dabbe304ef433873eb4be45c76d07e798ff..d826480b4b350bb88451f1b1ab44939705aed8d4 100644 (file)
--- a/config.l
+++ b/config.l
@@ -86,6 +86,7 @@ game_start    { yylval.i = DGLTIME_GAMESTART; return TYPE_CMDQUEUENAME; }
 mkdir          { yylval.i = DGLCMD_MKDIR;  return TYPE_DGLCMD1; }
 chdir          { yylval.i = DGLCMD_CHDIR;  return TYPE_DGLCMD1; }
 cp             { yylval.i = DGLCMD_CP;     return TYPE_DGLCMD2; }
+ifnxcp         { yylval.i = DGLCMD_IF_NX_CP; return TYPE_DGLCMD2; }
 unlink         { yylval.i = DGLCMD_UNLINK; return TYPE_DGLCMD1; }
 setenv         { yylval.i = DGLCMD_SETENV; return TYPE_DGLCMD2; }
 exec           { yylval.i = DGLCMD_EXEC;   return TYPE_DGLCMD2; }
index fedfd0a67bd862a1b5353578177ffa6a1ea9c270..39a05d531325e7911c451d2be6de8a6b4b3b1b43 100644 (file)
@@ -99,6 +99,7 @@ typedef enum
     DGLCMD_NONE = 0,
     DGLCMD_MKDIR,      /* mkdir foo */
     DGLCMD_CHDIR,      /* chdir foo */
+    DGLCMD_IF_NX_CP,   /* ifnxcp foo bar */
     DGLCMD_CP,         /* cp foo bar */
     DGLCMD_UNLINK,     /* unlink foo */
     DGLCMD_EXEC,       /* exec foo bar */
index 69ceedcfc5a56891aa067b1bc9af5a9918e76c33..a9ec2d650c72a021dcb5e093c169f7f6883bcc4f 100644 (file)
@@ -144,6 +144,13 @@ dgl_exec_cmdqueue(struct dg_cmdpart *queue, int game, struct dg_user *me)
        case DGLCMD_CHDIR:
            if (p1) chdir(p1);
            break;
+       case DGLCMD_IF_NX_CP:
+           if (p1 && p2) {
+               FILE *tmpfile;
+               tmpfile = fopen(p2, "r");
+               if (tmpfile) break;
+           }
+           /* else fall through to cp */
        case DGLCMD_CP:
            if (p1 && p2) {
                FILE *cannedf, *newfile;
index 530d2b9ab3518f7822704c4e7abb22096ecef209..cea5787c487bc6315f664aa86217092b9472f546 100644 (file)
@@ -71,6 +71,7 @@ lockfile = "/dgl-lock"
 #   mkdir "foo"       = creates a directory "foo"
 #   chdir "foo"       = changes current work dir to "foo"
 #   cp "foo" "bar"    = copies file "foo" to "bar", overwriting previous "bar"
+#   ifnxcp "foo" "bar" = copies file "foo" to "bar", if "bar" doesn't exist
 #   unlink "foo"      = deletes file "foo"
 #   setenv "foo "bar" = sets environment variable "foo" to "bar"
 #   exec "foo" "bar"  = execute "foo" with "bar" as it's param