ENH: Add code for setting and getting permissions
This commit is contained in:
parent
0217af3b58
commit
7527fbccc2
|
@ -42,6 +42,8 @@
|
|||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
|
||||
bool cmSystemTools::s_RunCommandHideConsole = false;
|
||||
bool cmSystemTools::s_DisableRunCommandOutput = false;
|
||||
|
@ -1205,3 +1207,37 @@ bool cmSystemTools::PutEnv(const char* value)
|
|||
localEnvironment.push_back(envVar);
|
||||
return ret == 0;
|
||||
}
|
||||
|
||||
bool cmSystemTools::GetPermissions(const char* file, mode_t& mode)
|
||||
{
|
||||
if ( !file )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
struct stat st;
|
||||
if ( stat(file, &st) < 0 )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
mode = st.st_mode;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cmSystemTools::SetPermissions(const char* file, mode_t mode)
|
||||
{
|
||||
if ( !file )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ( !cmSystemTools::FileExists(file) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ( chmod(file, mode) < 0 )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -260,6 +260,10 @@ public:
|
|||
of the form var=value */
|
||||
static bool PutEnv(const char* value);
|
||||
|
||||
///! Get permissions of the file
|
||||
static bool GetPermissions(const char* file, mode_t& mode);
|
||||
static bool SetPermissions(const char* file, mode_t mode);
|
||||
|
||||
private:
|
||||
static bool s_ForceUnixPaths;
|
||||
static bool s_RunCommandHideConsole;
|
||||
|
|
Loading…
Reference in New Issue