X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fwgtpkg-installer.c;h=855e28d6e35dc2ffd323886132759450be39a255;hb=3a6e947bef1b2942e24d2fdee1a76dbf3305b508;hp=62807aa984e468ef5918aef507db0449b45aaf34;hpb=e2de563d1ecb4585ce68521bd42f3ef45ac79f16;p=src%2Fapp-framework-main.git diff --git a/src/wgtpkg-installer.c b/src/wgtpkg-installer.c index 62807aa..855e28d 100644 --- a/src/wgtpkg-installer.c +++ b/src/wgtpkg-installer.c @@ -1,5 +1,7 @@ /* - Copyright 2015 IoT.bzh + Copyright 2015, 2016, 2017 IoT.bzh + + author: José Bollo Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -23,13 +25,17 @@ #include #include #include -#include #include +#include + #include "verbose.h" -#include "wgtpkg.h" +#include "wgtpkg-permissions.h" +#include "wgtpkg-xmlsec.h" +#include "wgt-info.h" +#include "wgtpkg-install.h" -static const char appname[] = "wgtpkg-install"; +static const char appname[] = "wgtpkg-installer"; static const char *root; static int force; @@ -60,10 +66,10 @@ static struct option options[] = { /* install the widgets of the list */ int main(int ac, char **av) { - int i; - char *wpath; + int i, rc; + struct wgt_info *ifo; - openlog(appname, LOG_PERROR, LOG_AUTH); + LOGAUTH(appname); xmlsec_init(); @@ -87,7 +93,11 @@ int main(int ac, char **av) verbosity++; break; case 'p': - grant_permission_list(optarg); + rc = grant_permission_list(optarg); + if (rc < 0) { + ERROR("Can't set granted permission list"); + exit(1); + } break; case ':': ERROR("missing argument value"); @@ -104,21 +114,14 @@ int main(int ac, char **av) return 1; } - /* canonic names for files */ + /* install widgets */ av += optind; - for (i = 0 ; av[i] != NULL ; i++) { - wpath = realpath(av[i], NULL); - if (wpath == NULL) { - ERROR("error while getting realpath of %dth widget: %s", i+1, av[i]); - return 1; - } - av[i] = wpath; - } root = *av++; - - /* install widgets */ - for ( ; *av ; av++) - install_widget(*av, root, force); + for ( ; *av ; av++) { + ifo = install_widget(*av, root, force); + if (ifo) + wgt_info_unref(ifo); + } return 0; }