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);
238 void list_merge(ald_string_list &al1,
const ald_string_list &al2);
240 void list_subtract(ald_string_list &al1,
const ald_string_list &al2);
241 void list_intersect(ald_string_list &al1,
const ald_string_list &al2);
242 bool IsMemberOfList(
const ald_string_list &list,
const string &str);
243 string listToStr(
const ald_string_list &list);
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;
308 void EnumerateLinuxCaps(ald_string_list &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+std::string(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)
Условный вывод команды форматирования терминала
Пространство имен основного интерфейса Astra Linux Directory.
Definition: action-definitions.h:9
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