X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fpath-util.c;h=b623fc3dd5adeb9cad7034ee05425b73dd29ab7b;hb=bdd29249a882e599e5e365536372d08dee398cd4;hp=52ce65de6d9a8b8e65f6a533ab896c317129c628;hpb=91a6489d9949776605939fe65a2a6174ee719049;p=elogind.git diff --git a/src/shared/path-util.c b/src/shared/path-util.c index 52ce65de6..b623fc3dd 100644 --- a/src/shared/path-util.c +++ b/src/shared/path-util.c @@ -215,6 +215,16 @@ char **path_strv_canonicalize(char **l) { return l; } +char **path_strv_canonicalize_uniq(char **l) { + if (strv_isempty(l)) + return l; + + if (!path_strv_canonicalize(l)) + return NULL; + + return strv_uniq(l); +} + char *path_kill_slashes(char *path) { char *f, *t; bool slash = false; @@ -403,3 +413,15 @@ int path_is_read_only_fs(const char *path) { return !!(st.f_flag & ST_RDONLY); } + +int path_is_os_tree(const char *path) { + char *p; + int r; + + /* We use /etc/os-release as flag file if something is an OS */ + + p = strappenda(path, "/etc/os-release"); + r = access(p, F_OK); + + return r < 0 ? 0 : 1; +}