#include <lib.h>
#include <dirs.h>
inherit LIB_DAEMON;
mixed cmd(string str) {
string *file_arr;
string tmp, filename, str2, orig;
int time;
object ob;
orig = str;
if( !str ) return "You must specify a file to backup.";
else str = absolute_path((string)this_player()->query_cwd(), str);
if( !file_exists(str) ) str2 = str+".c";
if( !file_exists(str) && !file_exists(str2)) {
if(str == "here" || str == "room") ob = environment(this_player());
else {
ob = present(orig,environment(this_player()));
if(!ob) ob = present(orig, this_player());
if(!ob) return "File not found.";
}
str2 = base_name(ob)+".c";
}
if(str2 && !file_exists(str2)) return "File unfound.";
else if(str2) str = str2;
if( !(tmp = read_file(str)) )
return "Unable to read file " + str + ".";
else {
time = time();
file_arr = explode(str,"/");
filename = REALMS_DIRS + "/" + this_player()->GetKeyName();
filename += "/bak/"+file_arr[sizeof(file_arr)-1]+"."+time;
write_file(REALMS_DIRS + "/" + this_player()->GetKeyName()+
"/bak/bk.db",file_arr[sizeof(file_arr)-1]+"."+time+" : "+str+"\n");
load_object("/secure/cmds/creators/cp")->cmd(str + " " +filename);
}
return 1;
}
int help() {
message("help", "Syntax: <bk [file]>\n\n"
"Copies the specified file into your bak/ directory, and "
"appends a unique identifying number to the backup file name.",
this_player());
}