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)