24 #include <sys/types.h>
152 mode_t
perm()
const {
return isExist() ? (
statbuf_C.st_mode & (S_IRWXU|S_IRWXG|S_IRWXO|S_ISUID|S_ISGID|S_ISVTX)) : 0; }
257 static int readdir( std::list<std::string> & retlist,
282 bool dots =
true,
Mode statmode =
STAT );
420 mode_t
perm()
const {
return (
_mode & (S_IRWXU|S_IRWXG|S_IRWXO|S_ISUID|S_ISGID|S_ISVTX)); }
468 bool insert(
const dev_t & dev_r,
const ino_t & ino_r ) {
469 return _devino[dev_r].insert( ino_r ).second;
unsigned long blksize() const
Definition: PathInfo.h:179
bool userMayRW() const
Definition: PathInfo.h:166
gid_t group() const
Definition: PathInfo.h:126
static int rmdir(const Pathname &path)
Definition: PathInfo.cc:348
Definition: PathInfo.h:57
bool isXOth() const
Definition: PathInfo.h:143
struct stat statbuf_C
Definition: PathInfo.h:80
std::list< direntry > dircontent
Definition: PathInfo.h:269
static int copy_dir(const Pathname &srcpath, const Pathname &destpath)
Definition: PathInfo.cc:433
nlink_t nlink() const
Definition: PathInfo.h:122
#define str
Definition: scanner.cc:997
bool userMayRWX() const
Definition: PathInfo.h:170
bool isRGrp() const
Definition: PathInfo.h:137
bool isXUsr() const
Definition: PathInfo.h:399
mode_t uperm() const
Definition: PathInfo.h:417
dev_t dev() const
Definition: PathInfo.h:173
static int unlink(const Pathname &path)
Definition: PathInfo.cc:541
mode_t st_mode() const
Definition: PathInfo.h:157
bool isRGrp() const
Definition: PathInfo.h:405
const Pathname & path() const
Definition: PathInfo.h:91
Definition: PathInfo.h:51
static int copy(const Pathname &file, const Pathname &dest)
Definition: PathInfo.cc:575
Definition: PathInfo.h:60
Definition: PathInfo.h:260
bool isFile() const
Definition: PathInfo.h:388
file_type type
Definition: PathInfo.h:262
bool isDir() const
Definition: PathInfo.h:115
Mode mode_e
Definition: PathInfo.h:81
bool isW() const
Definition: PathInfo.h:402
dev_t rdev() const
Definition: PathInfo.h:174
mode_t userMay() const
Definition: PathInfo.cc:141
bool isPerm(mode_t m) const
Definition: PathInfo.h:422
static int symlink(const Pathname &oldpath, const Pathname &newpath)
Definition: PathInfo.cc:612
friend std::ostream & operator<<(std::ostream &str, const PathInfo &obj)
Definition: PathInfo.cc:161
bool isFifo() const
Definition: PathInfo.h:393
Definition: Pathname.h:31
bool userMayX() const
Definition: PathInfo.h:164
const std::string & asString() const
Definition: PathInfo.h:92
bool userMayR() const
Definition: PathInfo.h:162
Definition: PathInfo.h:61
mode_t _mode
Definition: PathInfo.h:381
static int readdir(std::list< std::string > &retlist, const Pathname &path, bool dots=true)
Definition: PathInfo.cc:477
Definition: PathInfo.h:365
Definition: PathInfo.h:59
bool isX() const
Definition: PathInfo.h:135
bool isWGrp() const
Definition: PathInfo.h:406
mode_t uperm() const
Definition: PathInfo.h:149
bool hasPerm(mode_t m) const
Definition: PathInfo.h:423
Definition: PathInfo.h:58
uid_t owner() const
Definition: PathInfo.h:125
bool isSock() const
Definition: PathInfo.h:120
bool isVtx() const
Definition: PathInfo.h:147
bool isExist() const
Definition: PathInfo.h:109
bool lstat(const Pathname &path)
Definition: PathInfo.h:100
ino_t ino() const
Definition: PathInfo.h:175
bool isRUsr() const
Definition: PathInfo.h:129
bool hasPerm(mode_t m) const
Definition: PathInfo.h:155
bool isLink() const
Definition: PathInfo.h:390
static int erase(const Pathname &path)
Definition: PathInfo.cc:683
bool isUid() const
Definition: PathInfo.h:145
friend std::ostream & operator<<(std::ostream &str, const stat_mode &obj)
Definition: PathInfo.cc:240
Definition: PathInfo.h:365
static int copy_file2dir(const Pathname &file, const Pathname &dest)
Definition: PathInfo.cc:646
bool stat()
Definition: PathInfo.h:103
bool isR() const
Definition: PathInfo.h:133
bool isRUsr() const
Definition: PathInfo.h:397
bool isBlk() const
Definition: PathInfo.h:392
Definition: PathInfo.h:365
time_t atime() const
Definition: PathInfo.h:183
bool isSock() const
Definition: PathInfo.h:394
PathInfo(const Pathname &path="", Mode initial=STAT)
Definition: PathInfo.cc:41
bool isDir() const
Definition: PathInfo.h:389
Definition: PathInfo.h:55
devino_cache()
Definition: PathInfo.h:456
bool isWUsr() const
Definition: PathInfo.h:398
bool isXGrp() const
Definition: PathInfo.h:407
Simple cache remembering device/inode to detect hardlinks.
Definition: PathInfo.h:446
bool isR() const
Definition: PathInfo.h:401
mode_t perm() const
Definition: PathInfo.h:420
bool isVtx() const
Definition: PathInfo.h:415
bool lstat()
Definition: PathInfo.h:104
static int recursive_rmdir(const Pathname &path)
Definition: PathInfo.cc:365
bool isChr() const
Definition: PathInfo.h:391
mode_t operm() const
Definition: PathInfo.h:151
bool insert(const dev_t &dev_r, const ino_t &ino_r)
Definition: PathInfo.h:468
bool userMayWX() const
Definition: PathInfo.h:168
bool operator()()
Definition: PathInfo.cc:101
void setMode(Mode mode)
Definition: PathInfo.h:97
Definition: PathInfo.h:56
Definition: PathInfo.h:62
virtual ~PathInfo()
Definition: PathInfo.cc:89
static int mkdir(const Pathname &path, unsigned mode=0755)
Definition: PathInfo.cc:288
bool isLink() const
Definition: PathInfo.h:116
Wrapper class for ::stat/::lstat and other file/directory related operations.
Definition: PathInfo.h:45
file_type fileType() const
Definition: PathInfo.cc:126
void setPath(const Pathname &path)
Definition: PathInfo.h:96
off_t size() const
Definition: PathInfo.h:178
bool stat(const Pathname &path)
Definition: PathInfo.h:99
bool isX() const
Definition: PathInfo.h:403
bool isWOth() const
Definition: PathInfo.h:142
mode_t perm() const
Definition: PathInfo.h:152
time_t ctime() const
Definition: PathInfo.h:185
int error_i
Definition: PathInfo.h:82
bool isGid() const
Definition: PathInfo.h:414
bool isXUsr() const
Definition: PathInfo.h:131
bool isWUsr() const
Definition: PathInfo.h:130
static int clean_dir(const Pathname &path)
Definition: PathInfo.cc:403
int error() const
Definition: PathInfo.h:94
file_type
Definition: PathInfo.h:53
stat_mode(const mode_t &mode_r=0)
Definition: PathInfo.h:383
static int rename(const Pathname &oldpath, const Pathname &newpath)
Definition: PathInfo.cc:558
bool isW() const
Definition: PathInfo.h:134
bool isWOth() const
Definition: PathInfo.h:410
bool isUid() const
Definition: PathInfo.h:413
void clear()
Definition: PathInfo.h:461
bool isBlk() const
Definition: PathInfo.h:118
std::string name
Definition: PathInfo.h:261
unsigned long blocks() const
Definition: PathInfo.h:180
mode_t operm() const
Definition: PathInfo.h:419
bool isPerm(mode_t m) const
Definition: PathInfo.h:154
Pathname path_t
Definition: PathInfo.h:74
Definition: PathInfo.h:51
Mode
Definition: PathInfo.h:51
file_type fileType() const
Definition: PathInfo.cc:212
bool userMayRX() const
Definition: PathInfo.h:167
mode_t st_mode() const
Definition: PathInfo.h:425
std::map< dev_t, std::set< ino_t > > _devino
Definition: PathInfo.h:450
mode_t gperm() const
Definition: PathInfo.h:418
bool isGid() const
Definition: PathInfo.h:146
bool isChr() const
Definition: PathInfo.h:117
bool userMayW() const
Definition: PathInfo.h:163
Wrapper class for mode_t values as derived from ::stat.
Definition: PathInfo.h:378
bool isROth() const
Definition: PathInfo.h:141
static ZIP_TYPE zipType(const Pathname &file)
Definition: PathInfo.cc:718
time_t mtime() const
Definition: PathInfo.h:184
bool isXGrp() const
Definition: PathInfo.h:139
const std::string & asString() const
Definition: Pathname.h:64
bool operator()(const Pathname &path)
Definition: PathInfo.h:101
mode_t gperm() const
Definition: PathInfo.h:150
bool isXOth() const
Definition: PathInfo.h:411
Mode mode() const
Definition: PathInfo.h:93
bool isWGrp() const
Definition: PathInfo.h:138
bool isROth() const
Definition: PathInfo.h:409
ZIP_TYPE
Definition: PathInfo.h:365
static int assert_dir(const Pathname &path, unsigned mode=0755)
Definition: PathInfo.cc:305
bool isFifo() const
Definition: PathInfo.h:119
static int chmod(const Pathname &path, mode_t mode)
Definition: PathInfo.cc:703
static int hardlink(const Pathname &oldpath, const Pathname &newpath)
Definition: PathInfo.cc:629
Definition: PathInfo.h:54
bool isFile() const
Definition: PathInfo.h:114