set(PROJECT_NAME "AFM Main")
set(PROJECT_PRETTY_NAME "Application Framework Main")
set(PROJECT_DESCRIPTION "Secured Application framework for Automotive Grade Linux")
-set(PROJECT_VERSION "1.0")
+set(PROJECT_VERSION "4.1")
set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-main.git;a=summary")
set(USE_LIBZIP ON CACHE BOOL "should try to use libzip?")
-DFWK_UNIT_CONF="${afm_confdir}/afm-unit.conf"
-DFWK_USER_APP_DIR_LABEL="${afm_user_appdir_label}"
-DSYSTEMD_UNITS_ROOT="${systemd_units_root}"
+ -DAFM_VERSION="${PROJECT_VERSION}"
)
add_subdirectory(src)
static const char appname[] = "afm-system-daemon";
static const char *rootdir = NULL;
+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(
" -d run as a daemon\n"
" -q quiet\n"
" -v verbose\n"
+ " -V version\n"
"\n",
appname
);
{ "quiet", no_argument, NULL, 'q' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
};
LOGAUTH(appname);
/* interpretation of arguments */
- while ((i = getopt_long(ac, av, "hdqvr:", options, NULL)) >= 0) {
+ while ((i = getopt_long(ac, av, "hdqvVr:", options, NULL)) >= 0) {
switch (i) {
case 'h':
usage();
return 0;
+ case 'V':
+ version();
+ return 0;
case 'q':
if (verbosity)
verbosity--;
*/
static const char appname[] = "afm-user-daemon";
+/*
+ * string for printing version
+ */
+static const char versionstr[] =
+ "\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";
+
/*
* string for printing usage
*/
" -s addr address of system D-Bus to use\n"
" -q quiet\n"
" -v verbose\n"
+ " -V version\n"
"\n";
/*
* Option definition for getopt_long
*/
#ifdef LEGACY_MODE_WITHOUT_SYSTEMD
-static const char options_s[] = "hdqvr:a:m:";
+static const char options_s[] = "hdqvVr:a:m:";
static struct option options_l[] = {
{ "root", required_argument, NULL, 'r' },
{ "application", required_argument, NULL, 'a' },
{ "mode", required_argument, NULL, 'm' },
#else
-static const char options_s[] = "hdqv";
+static const char options_s[] = "hdqvV";
static struct option options_l[] = {
#endif
{ "user-dbus", required_argument, NULL, 'u' },
{ "quiet", no_argument, NULL, 'q' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
};
case 'h':
printf(usagestr, appname);
return 0;
+ case 'V':
+ printf(versionstr, appname);
+ return 0;
case 'q':
if (verbosity)
verbosity--;
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(
"\n"
" -q quiet\n"
" -v verbose\n"
+ " -V version\n"
"\n",
appname
);
{ "help", no_argument, NULL, 'h' },
{ "quiet", no_argument, NULL, 'q' },
{ "verbose", no_argument, NULL, 'v' },
+ { "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
};
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) {
case 'v':
verbosity++;
break;
+ case 'V':
+ version();
+ return 0;
case ':':
ERROR("missing argument value");
return 1;
static const char *root;
static int force;
+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(
" -f force overwriting\n"
" -q quiet\n"
" -v verbose\n"
+ " -V version\n"
"\n",
appname
);
{ "help", no_argument, NULL, 'h' },
{ "quiet", no_argument, NULL, 'q' },
{ "verbose", no_argument, NULL, 'v' },
+ { "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
};
force = 0;
for (;;) {
- i = getopt_long(ac, av, "hfqvp:", options, NULL);
+ i = getopt_long(ac, av, "hfqvVp:", options, NULL);
if (i < 0)
break;
switch (i) {
case 'v':
verbosity++;
break;
+ case 'V':
+ version();
+ return 0;
case 'p':
rc = grant_permission_list(optarg);
if (rc < 0) {
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(
" -f force overwriting\n"
" -q quiet\n"
" -v verbose\n"
+ " -V version\n"
"\n",
appname
);
{ "help", no_argument, NULL, 'h' },
{ "quiet", no_argument, NULL, 'q' },
{ "verbose", no_argument, NULL, 'v' },
+ { "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
};
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) {
case 'h':
usage();
return 0;
+ case 'V':
+ version();
+ return 0;
case ':':
ERROR("missing argument");
return 1;
return (unsigned int)val;
}
+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(
" -f force overwriting\n"
" -q quiet\n"
" -v verbose\n"
+ " -V version\n"
"\n",
appname
);
{ "help", no_argument, NULL, 'h' },
{ "quiet", no_argument, NULL, 'q' },
{ "verbose", no_argument, NULL, 'v' },
+ { "version", no_argument, NULL, 'V' },
{ NULL, 0, NULL, 0 }
};
number = UINT_MAX;
keyfile = directory = NULL;
for (;;) {
- i = getopt_long(ac, av, "hfqvak:c:d:", options, NULL);
+ i = getopt_long(ac, av, "hfqvVak:c:d:", options, NULL);
if (i < 0)
break;
switch (i) {
case 'f': force = 1; continue;
case 'a': author = 1; continue;
case 'h': usage(); return 0;
+ case 'V': version(); return 0;
case 'q':
if (verbosity)
verbosity--;