X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fwgtpkg-info.c;h=1c9eac02f99cb2bbc63f725897cff25f2393f0b8;hb=d8d819bcde18c8b4b5dfbdf610a6fc5e04fa54bf;hp=7854b099e8a89fc2088351bde877126d8504a279;hpb=9ab266df6642c6e930e03b3024d7c3d53ef88bbc;p=src%2Fapp-framework-main.git diff --git a/src/wgtpkg-info.c b/src/wgtpkg-info.c index 7854b09..1c9eac0 100644 --- a/src/wgtpkg-info.c +++ b/src/wgtpkg-info.c @@ -1,5 +1,7 @@ /* - Copyright 2015 IoT.bzh + Copyright (C) 2015-2018 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. @@ -14,19 +16,22 @@ limitations under the License. */ -#define _BSD_SOURCE /* see readdir */ - #include #include #include #include #include #include -#include #include +#include + #include "verbose.h" -#include "wgtpkg.h" +#include "wgtpkg-workdir.h" +#include "wgtpkg-files.h" +#include "wgtpkg-zip.h" +#include "wgtpkg-digsig.h" +#include "wgtpkg-xmlsec.h" #include "wgt.h" #include "wgt-info.h" @@ -34,13 +39,28 @@ static const char appname[] = "wgtpkg-info"; static void show(const char *wgtfile); +static void version() +{ + printf( + "\n" + " %s version="AFM_VERSION"\n" + "\n" + " Copyright (C) 2015, 2016, 2017 \"IoT.bzh\"\n" + " AFB comes with ABSOLUTELY NO WARRANTY.\n" + " Licence Apache 2\n" + "\n", + appname + ); +} + static void usage() { printf( - "usage: %s [-f] [-q] [-v] wgtfile...\n" + "usage: %s [-q] [-v] wgtfile...\n" "\n" " -q quiet\n" " -v verbose\n" + " -V version\n" "\n", appname ); @@ -50,6 +70,7 @@ static struct option options[] = { { "help", no_argument, NULL, 'h' }, { "quiet", no_argument, NULL, 'q' }, { "verbose", no_argument, NULL, 'v' }, + { "version", no_argument, NULL, 'V' }, { NULL, 0, NULL, 0 } }; @@ -59,12 +80,12 @@ int main(int ac, char **av) int i; char *wpath; - openlog(appname, LOG_PERROR, LOG_USER); + LOGUSER(appname); xmlsec_init(); for (;;) { - i = getopt_long(ac, av, "hqv", options, NULL); + i = getopt_long(ac, av, "hqvV", options, NULL); if (i < 0) break; switch (i) { @@ -78,11 +99,14 @@ int main(int ac, char **av) case 'v': verbosity++; break; + case 'V': + version(); + return 0; case ':': - syslog(LOG_ERR, "missing argument value"); + ERROR("missing argument value"); return 1; default: - syslog(LOG_ERR, "unrecognized option"); + ERROR("unrecognized option"); return 1; } } @@ -92,7 +116,7 @@ int main(int ac, char **av) for (i = 0 ; av[i] != NULL ; i++) { wpath = realpath(av[i], NULL); if (wpath == NULL) { - syslog(LOG_ERR, "error while getting realpath of %dth widget: %s", i+1, av[i]); + ERROR("error while getting realpath of %dth widget: %s", i+1, av[i]); return 1; } av[i] = wpath; @@ -120,22 +144,22 @@ static int check_and_show() /* install the widget of the file */ static void show(const char *wgtfile) { - notice("-- INFO for widget %s --", wgtfile); + NOTICE("-- INFO for widget %s --", wgtfile); /* workdir */ - if (make_workdir_base("/tmp", "UNPACK", 0)) { - syslog(LOG_ERR, "failed to create a working directory"); + if (make_workdir("/tmp", "UNPACK", 0)) { + ERROR("failed to create a working directory"); return; } if (zread(wgtfile, 0)) goto error2; - if (check_all_signatures()) + if (check_all_signatures(1)) /* info even on WGT without signature */ goto error2; check_and_show(); - + error2: remove_workdir(); return;