diff options
-rw-r--r-- | src/wgtpkg-install.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/wgtpkg-install.c b/src/wgtpkg-install.c index 79cb7fb..2b57a4e 100644 --- a/src/wgtpkg-install.c +++ b/src/wgtpkg-install.c @@ -295,6 +295,7 @@ static int check_one_content(const char *src, const char *type) { int rc; struct stat s; + int fhtdocs, serr; if (!src) { ERROR("a content src is missing"); @@ -304,6 +305,16 @@ static int check_one_content(const char *src, const char *type) /* TODO: when dealing with HTML and languages, the check should * include i18n path search of widgets */ rc = fstatat(workdirfd, src, &s, AT_NO_AUTOMOUNT|AT_SYMLINK_NOFOLLOW); + if (rc < 0) { + serr = errno; + fhtdocs = openat(workdirfd, "htdocs", O_DIRECTORY|O_PATH); + if (fhtdocs >= 0) { + rc = fstatat(fhtdocs, src, &s, AT_NO_AUTOMOUNT|AT_SYMLINK_NOFOLLOW); + serr = errno; + close(fhtdocs); + } + errno = serr; + } if (rc < 0) ERROR("can't get info on content %s: %m", src); else if (!S_ISREG(s.st_mode)) { |