static int install_exec_flag(const struct wgt_desc *desc)
{
- int i;
+ int i, rc;
if (desc->content_type) {
i = sizeof exec_type_strings / sizeof *exec_type_strings;
while (i) {
- if (!strcasecmp(desc->content_type, exec_type_strings[--i]))
- return fchmodat(workdirfd, desc->content_src, 0755, 0);
+ if (!strcasecmp(desc->content_type, exec_type_strings[--i])) {
+ rc = fchmodat(workdirfd, desc->content_src, 0755, 0);
+ if (rc < 0)
+ ERROR("can't make executable the file %s", desc->content_src);
+ return rc;
+ }
}
}
return 0;
const struct wgt_desc *desc;
char installdir[PATH_MAX];
int port;
+ struct unitconf uconf;
NOTICE("-- INSTALLING widget %s to %s --", wgtfile, root);
if (port < 0)
goto error4;
- if (unit_install(ifo, installdir, FWK_ICON_DIR, port))
+ uconf.installdir = installdir;
+ uconf.icondir = FWK_ICON_DIR;
+ uconf.port = port;
+ if (unit_install(ifo, &uconf))
goto error4;
file_reset();
return ifo;
error4:
- /* todo: cleanup */
+ /* TODO: cleanup */
error3:
wgt_info_unref(ifo);