Update date in copyrights
[src/app-framework-main.git] / src / wgtpkg-info.c
index 1ed4de6..f32b265 100644 (file)
@@ -1,5 +1,7 @@
 /*
- Copyright 2015 IoT.bzh
+ Copyright (C) 2015-2019 IoT.bzh
+
+ author: José Bollo <jose.bollo@iot.bzh>
 
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
@@ -14,8 +16,6 @@
  limitations under the License.
 */
 
-#define _BSD_SOURCE /* see readdir */
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <dirent.h>
 #include <errno.h>
 #include <getopt.h>
 
+#include <libxml/tree.h>
+
 #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"
 
@@ -33,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-2019 \"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
        );
@@ -49,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 }
 };
 
@@ -63,7 +85,7 @@ int main(int ac, char **av)
        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) {
@@ -77,6 +99,9 @@ int main(int ac, char **av)
                case 'v':
                        verbosity++;
                        break;
+               case 'V':
+                       version();
+                       return 0;
                case ':':
                        ERROR("missing argument value");
                        return 1;
@@ -122,7 +147,7 @@ static void show(const char *wgtfile)
        NOTICE("-- INFO for widget %s --", wgtfile);
 
        /* workdir */
-       if (make_workdir_base("/tmp", "UNPACK", 0)) {
+       if (make_workdir("/tmp", "UNPACK", 0)) {
                ERROR("failed to create a working directory");
                return;
        }
@@ -130,11 +155,11 @@ static void show(const char *wgtfile)
        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;