yast2-core
|
Wrapper class for ::stat/::lstat and other file/directory related operations. More...
#include <PathInfo.h>
Classes | |
class | devino_cache |
Simple cache remembering device/inode to detect hardlinks. More... | |
struct | direntry |
class | stat_mode |
Wrapper class for mode_t values as derived from ::stat. More... | |
Public Types | |
enum | Mode { STAT, LSTAT } |
enum | file_type { NOT_AVAIL = 0x00, NOT_EXIST = 0x01, T_FILE = 0x02, T_DIR = 0x04, T_CHARDEV = 0x08, T_BLOCKDEV = 0x10, T_FIFO = 0x20, T_LINK = 0x40, T_SOCKET = 0x80 } |
enum | ZIP_TYPE { ZT_NONE, ZT_GZ, ZT_BZ2 } |
typedef std::list< direntry > | dircontent |
Public Member Functions | |
PathInfo (const Pathname &path="", Mode initial=STAT) | |
PathInfo (const std::string &path, Mode initial=STAT) | |
PathInfo (const char *path, Mode initial=STAT) | |
virtual | ~PathInfo () |
const Pathname & | path () const |
const std::string & | asString () const |
Mode | mode () const |
int | error () const |
void | setPath (const Pathname &path) |
void | setMode (Mode mode) |
bool | stat (const Pathname &path) |
bool | lstat (const Pathname &path) |
bool | operator() (const Pathname &path) |
bool | stat () |
bool | lstat () |
bool | operator() () |
bool | isExist () const |
file_type | fileType () const |
bool | isFile () const |
bool | isDir () const |
bool | isLink () const |
bool | isChr () const |
bool | isBlk () const |
bool | isFifo () const |
bool | isSock () const |
nlink_t | nlink () const |
uid_t | owner () const |
gid_t | group () const |
bool | isRUsr () const |
bool | isWUsr () const |
bool | isXUsr () const |
bool | isR () const |
bool | isW () const |
bool | isX () const |
bool | isRGrp () const |
bool | isWGrp () const |
bool | isXGrp () const |
bool | isROth () const |
bool | isWOth () const |
bool | isXOth () const |
bool | isUid () const |
bool | isGid () const |
bool | isVtx () const |
mode_t | uperm () const |
mode_t | gperm () const |
mode_t | operm () const |
mode_t | perm () const |
bool | isPerm (mode_t m) const |
bool | hasPerm (mode_t m) const |
mode_t | st_mode () const |
mode_t | userMay () const |
bool | userMayR () const |
bool | userMayW () const |
bool | userMayX () const |
bool | userMayRW () const |
bool | userMayRX () const |
bool | userMayWX () const |
bool | userMayRWX () const |
dev_t | dev () const |
dev_t | rdev () const |
ino_t | ino () const |
off_t | size () const |
unsigned long | blksize () const |
unsigned long | blocks () const |
time_t | atime () const |
time_t | mtime () const |
time_t | ctime () const |
Static Public Member Functions | |
static int | mkdir (const Pathname &path, unsigned mode=0755) |
static int | assert_dir (const Pathname &path, unsigned mode=0755) |
static int | rmdir (const Pathname &path) |
static int | recursive_rmdir (const Pathname &path) |
static int | clean_dir (const Pathname &path) |
static int | copy_dir (const Pathname &srcpath, const Pathname &destpath) |
static int | readdir (std::list< std::string > &retlist, const Pathname &path, bool dots=true) |
static int | readdir (dircontent &retlist, const Pathname &path, bool dots=true, Mode statmode=STAT) |
static int | unlink (const Pathname &path) |
static int | rename (const Pathname &oldpath, const Pathname &newpath) |
static int | copy (const Pathname &file, const Pathname &dest) |
static int | symlink (const Pathname &oldpath, const Pathname &newpath) |
static int | hardlink (const Pathname &oldpath, const Pathname &newpath) |
static int | copy_file2dir (const Pathname &file, const Pathname &dest) |
static int | erase (const Pathname &path) |
static int | chmod (const Pathname &path, mode_t mode) |
static ZIP_TYPE | zipType (const Pathname &file) |
Private Attributes | |
Pathname | path_t |
struct stat | statbuf_C |
Mode | mode_e |
int | error_i |
Friends | |
std::ostream & | operator<< (std::ostream &str, const PathInfo &obj) |
std::ostream & | operator<< (std::ostream &str, file_type obj) |
Wrapper class for ::stat/::lstat and other file/directory related operations.
typedef std::list<direntry> PathInfo::dircontent |
enum PathInfo::file_type |
enum PathInfo::Mode |
enum PathInfo::ZIP_TYPE |
References operator()().
References operator()().
References operator()().
|
virtual |
|
static |
Like 'mkdir -p'. No error if directory exists. Make parent directories as needed. mode specifies the permissions to use, if directories have to be created. It is modified by the process's umask in the usual way.
References Pathname::asString(), Pathname::empty(), mkdir(), mode(), and Pathname::relative().
Referenced by open_logfile(), and IniParser::write_file().
|
inline |
References Pathname::asString().
Referenced by operator<<().
|
static |
Like '::chmod'. The mode of the file given by path is changed.
References _Log_Result(), Pathname::asString(), DBG, mode(), and stringutil::octstring().
|
static |
Like 'rm -r DIR/ *'. Delete directory contents, but keep the directory itself.
References _Log_Result(), ExternalProgram::close(), DBG, stringutil::form(), isDir(), isExist(), output(), ExternalDataSource::receiveLine(), and ExternalProgram::Stderr_To_Stdout.
Like 'cp file dest'. Copy file to destination file.
References _Log_Result(), Pathname::asString(), ExternalProgram::close(), DBG, isDir(), isFile(), output(), ExternalDataSource::receiveLine(), and ExternalProgram::Stderr_To_Stdout.
Like 'cp -a srcpath destpath'. Copy directory tree. srcpath/destpath must be directories. 'basename srcpath' must not exist in destpath.
References _Log_Result(), Pathname::asString(), Pathname::basename(), ExternalProgram::close(), DBG, isDir(), output(), ExternalDataSource::receiveLine(), and ExternalProgram::Stderr_To_Stdout.
Like 'cp file dest'. Copy file to dest dir.
References _Log_Result(), Pathname::asString(), ExternalProgram::close(), DBG, isDir(), isFile(), output(), ExternalDataSource::receiveLine(), and ExternalProgram::Stderr_To_Stdout.
|
static |
Erase whatever happens to be located at path (file or directory).
References isDir(), isExist(), LSTAT, recursive_rmdir(), and unlink().
|
inline |
References error_i.
PathInfo::file_type PathInfo::fileType | ( | ) | const |
References PathInfo::stat_mode::fileType(), isExist(), NOT_EXIST, and st_mode().
Referenced by readdir().
|
inline |
|
inline |
References isExist(), and statbuf_C.
Referenced by operator<<(), and userMay().
Like '::link'. Creates a hard link named newpath to an existing file oldpath. If newpath exists it will not be overwritten.
References _Log_Result(), Pathname::asString(), and DBG.
|
inline |
References perm().
|
inline |
References isExist(), and statbuf_C.
Referenced by clean_dir(), copy(), copy_dir(), copy_file2dir(), erase(), and recursive_rmdir().
|
inline |
References error_i.
Referenced by atime(), blksize(), blocks(), clean_dir(), ctime(), dev(), erase(), fileType(), gperm(), group(), ino(), isBlk(), isChr(), isDir(), isFifo(), isFile(), isGid(), isLink(), isRGrp(), isROth(), isRUsr(), isSock(), isUid(), isVtx(), isWGrp(), isWOth(), isWUsr(), isXGrp(), isXOth(), isXUsr(), mtime(), nlink(), operator<<(), operm(), owner(), perm(), rdev(), recursive_rmdir(), size(), st_mode(), uperm(), and userMay().
|
inline |
References isExist(), and statbuf_C.
Referenced by copy(), copy_file2dir(), and operator<<().
|
inline |
References perm().
|
inline |
References isRUsr().
|
inline |
References isWUsr().
|
inline |
References isXUsr().
|
inline |
References LSTAT, operator()(), setMode(), and setPath().
|
inline |
References LSTAT, operator()(), and setMode().
Referenced by operator()().
|
static |
Like '::mkdir'. Attempt to create a new directory named path. mode specifies the permissions to use. It is modified by the process's umask in the usual way.
References _Log_Result(), Pathname::asString(), DBG, mode(), and stringutil::octstring().
Referenced by assert_dir().
|
inline |
References mode_e.
Referenced by assert_dir(), chmod(), mkdir(), and setMode().
|
inline |
References operator()(), and setPath().
Referenced by operator()().
bool PathInfo::operator() | ( | ) |
References Pathname::asString(), Pathname::empty(), error_i, LSTAT, lstat(), mode_e, path_t, STAT, stat(), and statbuf_C.
Referenced by lstat(), PathInfo(), and stat().
|
inline |
|
inline |
References isExist(), and statbuf_C.
Referenced by operator<<(), and userMay().
|
inline |
|
inline |
|
static |
Return content of directory via retlist. If dots is false entries starting with '.' are not reported. "." and ".." are never reported.
References _Log_Result(), and DBG.
Referenced by readdir().
|
static |
Return content of directory via retlist. If dots is false entries starting with '.' are not reported. "." and ".." are never reported.
The type of individual directory entries is determined accoding to statmode (i.e. via stat or lstat).
References fileType(), and readdir().
|
static |
Like 'rm -r DIR'. Delete a directory, recursively removing its contents.
References _Log_Result(), ExternalProgram::close(), DBG, isDir(), isExist(), output(), ExternalDataSource::receiveLine(), and ExternalProgram::Stderr_To_Stdout.
Referenced by erase().
Like '::rename'. Renames a file, moving it between directories if required.
References _Log_Result(), Pathname::asString(), and DBG.
|
static |
Like '::rmdir'. Delete a directory, which must be empty.
References _Log_Result(), DBG, and path().
|
inline |
References path().
Referenced by lstat(), operator()(), and stat().
|
inline |
References isExist(), and statbuf_C.
Referenced by operator<<().
|
inline |
References isExist(), and statbuf_C.
Referenced by fileType(), and operator<<().
|
inline |
References operator()(), setMode(), setPath(), and STAT.
|
inline |
References operator()(), setMode(), and STAT.
Referenced by operator()().
Like '::symlink'. Creates a symbolic link named newpath which contains the string oldpath. If newpath exists it will not be overwritten.
References _Log_Result(), Pathname::asString(), and DBG.
|
static |
Like '::unlink'. Delete a file (symbolic link, socket, fifo or device).
References _Log_Result(), DBG, and path().
Referenced by erase().
|
inline |
mode_t PathInfo::userMay | ( | ) | const |
References gperm(), group(), isExist(), operm(), owner(), and uperm().
Referenced by userMayR(), userMayRW(), userMayRWX(), userMayRX(), userMayW(), userMayWX(), and userMayX().
|
inline |
References userMay().
|
inline |
References userMay().
|
inline |
References userMay().
|
inline |
References userMay().
|
inline |
References userMay().
|
inline |
References userMay().
|
inline |
References userMay().
|
static |
References Pathname::asString(), ZT_BZ2, ZT_GZ, and ZT_NONE.
|
friend |
|
friend |
|
private |
Referenced by error(), isExist(), and operator()().
|
private |
Referenced by mode(), and operator()().
|
private |
Referenced by operator()(), and path().
|
private |
Referenced by atime(), blksize(), blocks(), ctime(), dev(), gperm(), group(), ino(), isBlk(), isChr(), isDir(), isFifo(), isFile(), isGid(), isLink(), isRGrp(), isROth(), isRUsr(), isSock(), isUid(), isVtx(), isWGrp(), isWOth(), isWUsr(), isXGrp(), isXOth(), isXUsr(), mtime(), nlink(), operator()(), operm(), owner(), perm(), rdev(), size(), st_mode(), and uperm().