From 208d7a8cdc9ea559f03927006da24d6850271ab7 Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Wed, 25 Mar 2009 19:47:42 +0000 Subject: [PATCH] + function to rename a file - getNewId (to utils) This work was kindly sponsored by Teltech Systems Inc. git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1336 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- apps/dsm/mods/mod_sys/ModSys.cpp | 18 +++++++++++++----- apps/dsm/mods/mod_sys/ModSys.h | 2 +- apps/dsm/mods/mod_sys/Readme.mod_sys.txt | 1 - 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/apps/dsm/mods/mod_sys/ModSys.cpp b/apps/dsm/mods/mod_sys/ModSys.cpp index 2cf1e1e0..0cf026e4 100644 --- a/apps/dsm/mods/mod_sys/ModSys.cpp +++ b/apps/dsm/mods/mod_sys/ModSys.cpp @@ -61,7 +61,7 @@ DSMAction* SCSysModule::getAction(const string& from_str) { DEF_CMD("sys.mkdir", SCMkDirAction); DEF_CMD("sys.mkdirRecursive", SCMkDirRecursiveAction); - DEF_CMD("sys.getNewId", SCGetNewIdAction); + DEF_CMD("sys.rename", SCRenameAction); return NULL; } @@ -163,9 +163,17 @@ EXEC_ACTION_START(SCMkDirRecursiveAction) { } } EXEC_ACTION_END; -EXEC_ACTION_START(SCGetNewIdAction) { - string d = resolveVars(arg, sess, sc_sess, event_params); - sc_sess->var[d]=AmSession::getNewId(); -} EXEC_ACTION_END; +CONST_ACTION_2P(SCRenameAction, ',', true); +EXEC_ACTION_START(SCRenameAction) { + string src = resolveVars(par1, sess, sc_sess, event_params); + string dst = resolveVars(par2, sess, sc_sess, event_params); + if (!rename(src.c_str(), dst.c_str())) { + sc_sess->SET_ERRNO(DSM_ERRNO_OK); + } else { + DBG("renaming '%s' to '%s' failed: '%s'\n", + src.c_str(), dst.c_str(), strerror(errno)); + sc_sess->SET_ERRNO(DSM_ERRNO_FILE); + } +} EXEC_ACTION_END; diff --git a/apps/dsm/mods/mod_sys/ModSys.h b/apps/dsm/mods/mod_sys/ModSys.h index 7b42caa8..34f3173e 100644 --- a/apps/dsm/mods/mod_sys/ModSys.h +++ b/apps/dsm/mods/mod_sys/ModSys.h @@ -42,6 +42,6 @@ class SCSysModule DEF_SCCondition(FileExistsCondition); DEF_ACTION_1P(SCMkDirAction); DEF_ACTION_1P(SCMkDirRecursiveAction); -DEF_ACTION_1P(SCGetNewIdAction); +DEF_ACTION_2P(SCRenameAction); #endif diff --git a/apps/dsm/mods/mod_sys/Readme.mod_sys.txt b/apps/dsm/mods/mod_sys/Readme.mod_sys.txt index 4f942ee7..dcdb5d81 100644 --- a/apps/dsm/mods/mod_sys/Readme.mod_sys.txt +++ b/apps/dsm/mods/mod_sys/Readme.mod_sys.txt @@ -1,7 +1,6 @@ Actions: sys.mkdir(string dirname) sys.mkdirRecursive(string dirname) - sys.getNewId(string varname) Conditions: sys.file_exists(string fname)