/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ using namespace std; #include "../config.h" #include #include "smack.h" #include "die.h" const char* datadir = SMACK_DATADIR; char* mk_data_path(char* buf, const char* file) { if(datadir && *file != '/') { int datadir_len = strlen(datadir); if(datadir_len > MAX_PATH - 3) { die(0, "datadir is too long "); } memcpy(buf, datadir, datadir_len); char* p = buf + datadir_len - 1; if(*p != '/') *++p = '/'; strncpy(p + 1, file, MAX_PATH - datadir_len - 1); file = buf; } return (char*)file; } int populate_data_file(const char* file, const char* cmd) { string shell_cmd = cmd; cout << "Populating data file '" << file << "' with shell command '" << cmd << "'" << endl; shell_cmd += " > "; shell_cmd += file; return system(shell_cmd.c_str()); }