10 #include <sys/capability.h>
28 #define FMTSTR CALDFormatCall(__FILE__, __FUNCTION__, __LINE__)
33 #define T_CMD(list) "\x1b[" list "m"
35 #define T_DFLT "\x1b[0;m"
48 #define T_FYELLOW "33"
50 #define T_FMAGENTA "35"
58 #define T_BYELLOW "33"
60 #define T_BMAGENTA "35"
72 string t_cmd(
const char * cmd);
77 #define BRED t_cmd(T_BOLD ";" T_FRED)
79 #define BGREEN t_cmd(T_BOLD ";" T_FGREEN)
80 #define BYELLOW t_cmd(T_BOLD ";" T_FYELLOW)
81 #define BBLUE t_cmd(T_BOLD ";" T_FBLUE)
82 #define BMAGENTA t_cmd(T_BOLD ";" T_FMAGENTA)
83 #define BCYAN t_cmd(T_BOLD ";" T_FCYAN)
84 #define BWHITE t_cmd(T_BOLD ";" T_FWHITE)
86 #define RED t_cmd(T_FRED)
87 #define GREEN t_cmd(T_FGREEN)
88 #define YELLOW t_cmd(T_FYELLOW)
89 #define BLUE t_cmd(T_FBLUE)
90 #define MAGENTA t_cmd(T_FMAGENTA)
91 #define CYAN t_cmd(T_FCYAN)
92 #define WHITE t_cmd(T_FWHITE)
94 #define NORMAL t_dflt()
96 #define OUT_COLOR(out, msg, color) do{out << color; out << msg; out << NORMAL; out << endl;}while(0)
97 #define COUT_COLOR(msg, color) OUT_COLOR(cout, msg, color)
98 #define COUT_ERR(msg) COUT_COLOR(msg, BRED)
99 #define COUT_WARN(msg) COUT_COLOR(msg, YELLOW)
100 #define COUT_CHECK(msg) COUT_COLOR(msg, GREEN)
101 #define COUT_INFO(msg) COUT_COLOR(msg, CYAN)
102 #define COUT_TEST(msg) COUT_COLOR(msg, MAGENTA)
121 const char* operator()(
size_t nparams,
const char *format, ...);
127 CALDFormatCall(
const char* file,
const char* func,
unsigned long line);
170 bool str2i(
const string &str,
int &val);
172 string i2str(
int val);
173 bool str2u(
const string &str,
unsigned int &val);
174 string u2str(
unsigned int val);
175 bool hex2u(
const string &str,
unsigned int &val);
176 string u2hex(
unsigned int val);
177 bool oct2u(
const string &str,
unsigned int &val);
178 string u2oct(
unsigned int val);
179 bool strTou64(
const string &str, uint64_t &val);
180 string u64Tostr(uint64_t val);
184 string TimeToStr(time_t t,
bool rfc2822);
186 time_t StrToTime(
const string &strdt,
bool rfc2822);
189 time_t GeneralizedTimeToTime(
const string >);
190 string GeneralizedTimeToStr(
const string >,
bool rfc2822);
191 string TimeToGeneralizedTime(time_t t);
196 string TrimLeft(
const string &str);
198 string TrimRight(
const string &str);
199 string Trim(
const string &str);
200 string Unquote(
const string &str);
201 string Quote(
const string &str,
bool force =
false);
202 string Capitallize(
const string &str);
203 string string2upper(
const string &str);
204 string string2lower(
const string &str);
205 string &StrAppend(
string &str1,
const string &str2);
207 char* strdup(
const char* str);
208 char* strdup(
const string &str);
214 string DomainToDn(
const string &domain);
216 string DomainToRealm(
const string &domain);
217 string RemoveRealm(
const string &str);
218 string DnToDomain(
const string &dn);
219 string RealmToDomain(
const string &realm);
220 string RemoveDomain(
const string &str,
const string &domain);
224 bool ParsePair(
const string &line,
string &name,
string &value);
228 string AskPassword(
const string &prompt,
size_t size,
char star);
230 string AskText(
const string &prompt,
size_t size);
231 string AskTextDef(
const string &prompt,
const string &defText,
size_t size);
232 bool AskYesNo(
const string &prompt,
bool defYes);
233 unsigned int AskNumber(
const string &prompt,
unsigned int defVal);
244 void StrTolist(
const string &str,
ald_string_list &list,
char delim =
',');
249 bool IsFileExist(
const string &path);
251 bool IsDirExist(
const string &path);
252 bool IsPathExist(
const string &path);
253 void RemoveDir(
const string &path,
bool force);
254 void RemoveFile(
const string &path);
255 void RemovePath(
const string &path,
bool force);
256 void RemoveFiles(
const string &path,
const string &pattern);
257 void CreateDir(
const string &path, mode_t mode);
258 void EnsureDir(
const string &path, mode_t mode);
259 void Chown(
const string &path, uid_t uid, gid_t gid,
bool rec =
false);
260 void Chown(
const string &path,
const string &ouser,
const string &ogroup,
bool rec =
false);
261 void Chmod(
const string &path, mode_t mode,
bool rec =
false);
262 bool IsDirectory(
const string &path);
263 bool IsFile(
const string &path);
264 void RenameFile(
const string &file,
const string &targetFile);
265 void CopyFile(
const string &file,
const string &targetFile);
266 void CopyPath(
const string &path,
const string &targetPath, mode_t mode);
267 void CreateFile(
const string &file);
268 string GetFileName(
const string &file);
269 string GetFilePath(
const string &file);
270 string GetFileExt(
const string &file);
275 void GZipFile(
const string &file,
const string &targetFile);
277 void GunZipFile(
const string &file,
const string &targetFile);
279 void TarCreate(
const ald_string_list &files,
const string &targetFile,
int mode);
280 void TarExtract(
const string &file,
const string &targetPath,
int mode);
282 void Pack(
const ald_string_list &files,
const string &targetFile,
int mode);
283 void Unpack(
const string &file,
const string &targetPath,
int mode);
291 string HostName(
const string &host);
299 #define ALD_HOST_MAX_SIZE 255
306 typedef uint32_t ald_linux_caps;
309 ald_linux_caps LinuxCapByName(
const string &capname);
310 enum aldCapFlag {acfEffective = 1, acfPermitted = 2, acfInheritable = 4};
311 typedef unsigned ald_cap_flags;
312 void LinuxCapMod(cap_value_t cap, ald_cap_flags flags, cap_flag_value_t val);
313 void LinuxCapsClear(ald_cap_flags flags);
320 #define TI_ITEM_INFO(info) {if(bVerbose){TestIntegrityItem(info);}}
321 #define TI_SECTION_INFO(info) TestIntegritySection(info, bVerbose)
322 #define TI_OK {if(bVerbose){TestIntegrityOK();}}
323 #define TI_ERROR {if(bVerbose){TestIntegrityERROR();}}
324 #define TI_WARNING {if(bVerbose){TestIntegrityWARNING();}}
325 #define TI_FIXED {if(bVerbose){TestIntegrityFIXED();}}
326 #define TI_ITEM_RES(res) {if(res) TI_OK else TI_ERROR;}
327 #define TI_SECTION_RES(res) {if(!bVerbose) { cout << t_cmd(T_BOLD); res? TestIntegrityOK(): TestIntegrityERROR();}}
329 #define TI_ADD_ERRINFO(info, errlist) errlist.push_back(YELLOW+info+NORMAL);
333 void TestIntegrityItem(
const string& info);
335 void TestIntegritySection(
const string& info,
bool verb);
336 void TestIntegrityOK();
337 void TestIntegrityERROR();
338 void TestIntegrityWARNING();
339 void TestIntegrityFIXED();
list< string > ald_string_list
Список строк
Definition: ALDUtils.h:152
vector< string > ald_string_vector
Вектор строк
Definition: ALDUtils.h:157
string HostDomain(const string &host)
Возвращает домен по имени компьютера
string t_cmd(const char *cmd)
Условный вывод команды форматирования терминала
pair< string, string > ald_string_pair
Пара строк
Definition: ALDUtils.h:162
bool ParsePair(const string &line, string &name, string &value)
Разбор строки (имя=значение)
string t_dflt()
Условный вывод команды сброса форматирования терминала
string DefaultCodeset()
Возвращает кодовую страницу по умолчанию
const char * ExtractFileName(const char *pszFileName)
Возвращает имя файла по полному пути
map< string, string > ald_string_map
MAP строка => строка
Definition: ALDUtils.h:164
void UseTermColors(bool colored)
Устанавливает признак использования цветового офрмления в терминале
multimap< string, string > ald_string_multimap
MultiMAP строка => строка
Definition: ALDUtils.h:166
const char * ExtractFuncName(const char *pszFuncName)
Возвращает короткое имя функции по полному имени
string TildeSubst(const string &file)
Разворачивает домашний каталог (~)
Статический класс помошник
Definition: ALDUtils.h:141
string PFM2Name(const string &PFM)
Возвращает короткое имя функции по полному
string CurrentUser()
Возвращает текущего пользователя
string HostName(const string &host)
Разыменовывает компьютер по имени
bool IsTermColored()
Возвращает признак использования цветового офрмления в терминале
list< int > ald_int_list
Список целых
Definition: ALDUtils.h:154
vector< int > ald_int_vector
Вектор целых
Definition: ALDUtils.h:159