22 typedef struct stat Stat;
26 const char jlss_id_mkpath_c[] =
"@(#)$Id: mkpath.c,v 1.12 2008/05/19 00:43:33 jleffler Exp $";
29 int do_mkdir(
const char *path, mode_t mode)
34 if (stat(path, &st) != 0)
37 if (mkdir(path, mode) != 0)
40 else if (!S_ISDIR(st.st_mode))
55 int mkpath(
const char *path, mode_t mode)
60 char *copypath = strdup(path);
64 while (status == 0 && (sp = strchr(pp,
'/')) != 0)
70 status = do_mkdir(copypath, mode);
76 status = do_mkdir(path, mode);
83 bool fileExists(
const std::string& filename)
86 if (stat(filename.c_str(), &buf) != -1)
94 std::string convertIntToString(
int val)
96 std::ostringstream convert;
102 void createPath(std::string &path)
104 if (mkpath(path.c_str(), 0777) != 0)
112 std::string getUserHomeDirectory()
117 char *var = getenv(
"HOME");
120 struct passwd *pw = getpwuid(getuid());
121 homedir = pw->pw_dir;
130 std::string getPMDirectory()
132 return getUserHomeDirectory() +
"/.skepu/";
137 std::string::value_type up_char(std::string::value_type ch)
139 return std::use_facet< std::ctype< std::string::value_type > >( std::locale() ).toupper( ch );
142 std::string::value_type lower_char(std::string::value_type ch)
144 return std::use_facet< std::ctype< std::string::value_type > >( std::locale() ).tolower( ch );
148 std::string capitalizeString(
const std::string &src)
151 std::transform( src.begin(), src.end(), std::back_inserter( result ), up_char );
157 std::string unCapitalizeString(
const std::string &src)
160 std::transform( src.begin(), src.end(), std::back_inserter( result ), lower_char );