X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fwgtpkg-pack.c;h=5a81d7e224fcf0814a4a60c68a6ac30dc58a7101;hb=d0cb2a7a1e068a38b4a0c3216ccdbce0e33ecffb;hp=a8aaa052626b6f92c4a154aaf142e2bbb83e42c3;hpb=bf7b5918fcc07713a29b9ca32f766b65b15a4ec2;p=src%2Fapp-framework-main.git diff --git a/src/wgtpkg-pack.c b/src/wgtpkg-pack.c index a8aaa05..5a81d7e 100644 --- a/src/wgtpkg-pack.c +++ b/src/wgtpkg-pack.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. @@ -21,25 +23,31 @@ #include #include #include -#include #include #include #include -#include "wgtpkg.h" - -#if !defined(MAXCERT) -#define MAXCERT 20 -#endif -#if !defined(DEFAULT_KEY_FILE) -#define DEFAULT_KEY_FILE "key.pem" -#endif -#if !defined(DEFAULT_CERT_FILE) -#define DEFAULT_CERT_FILE "cert.pem" -#endif +#include "verbose.h" +#include "wgtpkg-files.h" +#include "wgtpkg-workdir.h" +#include "wgtpkg-zip.h" const char appname[] = "wgtpkg-pack"; +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( @@ -49,6 +57,7 @@ static void usage() " -f force overwriting\n" " -q quiet\n" " -v verbose\n" + " -V version\n" "\n", appname ); @@ -60,6 +69,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 } }; @@ -70,12 +80,12 @@ int main(int ac, char **av) char *wgtfile, *directory, *x; struct stat s; - openlog(appname, LOG_PERROR, LOG_USER); + LOGUSER(appname); force = 0; wgtfile = directory = NULL; for (;;) { - i = getopt_long(ac, av, "qvhfo:", options, NULL); + i = getopt_long(ac, av, "qvVhfo:", options, NULL); if (i < 0) break; switch (i) { @@ -95,52 +105,55 @@ int main(int ac, char **av) case 'h': usage(); return 0; + case 'V': + version(); + return 0; case ':': - syslog(LOG_ERR, "missing argument"); + ERROR("missing argument"); return 1; default: - syslog(LOG_ERR, "unrecognized option"); + ERROR("unrecognized option"); return 1; } } /* remaining arguments and final checks */ if (optind >= ac) { - syslog(LOG_ERR, "no directory set"); + ERROR("no directory set"); return 1; } directory = av[optind++]; if (optind < ac) { - syslog(LOG_ERR, "extra parameters found"); + ERROR("extra parameters found"); return 1; } /* set default values */ if (wgtfile == NULL && 0 > asprintf(&wgtfile, "%s.wgt", directory)) { - syslog(LOG_ERR, "asprintf failed"); + ERROR("asprintf failed"); return 1; } /* check values */ if (stat(directory, &s)) { - syslog(LOG_ERR, "can't find directory %s", directory); + ERROR("can't find directory %s", directory); return 1; } if (!S_ISDIR(s.st_mode)) { - syslog(LOG_ERR, "%s isn't a directory", directory); + ERROR("%s isn't a directory", directory); return 1; } if (access(wgtfile, F_OK) == 0 && force == 0) { - syslog(LOG_ERR, "can't overwrite existing %s", wgtfile); + ERROR("can't overwrite existing %s", wgtfile); return 1; } - notice("-- PACKING widget %s from directory %s", wgtfile, directory); + NOTICE("-- PACKING widget %s from directory %s", wgtfile, directory); /* creates an existing widget (for realpath it must exist) */ - i = open(wgtfile, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666); + i = open(wgtfile, O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0644); if (i < 0) { - syslog(LOG_ERR, "can't write widget %s", wgtfile); + ERROR("can't write widget %s", wgtfile); return 1; } close(i); @@ -148,13 +161,17 @@ int main(int ac, char **av) /* compute absolutes paths */ x = realpath(wgtfile, NULL); if (x == NULL) { - syslog(LOG_ERR, "realpath failed for %s",wgtfile); + ERROR("realpath failed for %s", wgtfile); return 1; } wgtfile = x; /* set and enter the workdir */ - if (set_workdir(directory, 0) || enter_workdir(0)) + if (chdir(directory)) { + ERROR("failed to enter directory %s", directory); + return 1; + } + if (set_workdir(".", 0)) return 1;