Update version of tools
[src/app-framework-main.git] / src / afm-user-daemon.c
index c75aadb..11a46de 100644 (file)
@@ -29,6 +29,7 @@
 #include "verbose.h"
 #include "utils-jbus.h"
 #include "utils-json.h"
+#include "utils-systemd.h"
 #include "afm.h"
 #include "afm-launch-mode.h"
 #ifdef LEGACY_MODE_WITHOUT_SYSTEMD
  */
 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
  */
@@ -63,19 +76,20 @@ static const char usagestr[] =
        "   -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' },
@@ -84,6 +98,7 @@ static struct option options_l[] = {
        { "quiet",       no_argument,       NULL, 'q' },
        { "verbose",     no_argument,       NULL, 'v' },
        { "help",        no_argument,       NULL, 'h' },
+       { "version",     no_argument,       NULL, 'V' },
        { NULL, 0, NULL, 0 }
 };
 
@@ -487,10 +502,15 @@ static void on_uninstall(struct sd_bus_message *smsg, const char *msg, void *unu
  */
 static void on_signal_changed(struct json_object *obj, void *unused)
 {
-       /* update the database */
 #ifdef LEGACY_MODE_WITHOUT_SYSTEMD
+       /* update the database */
        afm_db_update_applications(afdb);
 #else
+       /* enforce daemon reload */
+       systemd_daemon_reload(1);
+       systemd_unit_restart_name(1, "sockets.target");
+
+       /* update the database */
        afm_udb_update(afudb);
 #endif
        /* re-propagate now */
@@ -573,6 +593,9 @@ int main(int ac, char **av)
                case 'h':
                        printf(usagestr, appname);
                        return 0;
+               case 'V':
+                       printf(versionstr, appname);
+                       return 0;
                case 'q':
                        if (verbosity)
                                verbosity--;