Fix lack of message when setting exec bit
[src/app-framework-main.git] / src / wgtpkg-install.c
index 22b8050..e4c3bbc 100644 (file)
@@ -268,13 +268,17 @@ static int install_icon(const struct wgt_desc *desc)
 
 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;
@@ -353,6 +357,7 @@ struct wgt_info *install_widget(const char *wgtfile, const char *root, int force
        const struct wgt_desc *desc;
        char installdir[PATH_MAX];
        int port;
+       struct unitconf uconf;
 
        NOTICE("-- INSTALLING widget %s to %s --", wgtfile, root);
 
@@ -397,14 +402,17 @@ struct wgt_info *install_widget(const char *wgtfile, const char *root, int force
        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);