projects/package-update-indicator

view package-update-indicator.c @ 0:6884bb8130ca

Initial revision
author Guido Berhoerster <guido+pui@berhoerster.name>
date Sun May 20 11:32:57 2018 +0200 (2018-05-20)
parents
children
line source
1 /*
2 * Copyright (C) 2018 Guido Berhoerster <guido+pui@berhoerster.name>
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included
13 * in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */
24 #include <errno.h>
25 #include <gtk/gtk.h>
26 #include <glib/gi18n.h>
27 #include <locale.h>
28 #include <stdlib.h>
29 #include <unistd.h>
31 #include "pui-application.h"
33 gboolean restart;
35 int
36 main(int argc, char *argv[])
37 {
38 int status;
39 gchar *program;
40 PuiApplication *application;
42 /* try to obtain the name of the executable for safe re-execution */
43 if (argv[0] == NULL) {
44 g_error("unable to locate %s executable", PACKAGE);
45 }
46 if (argv[0][0] != '/') {
47 program = g_find_program_in_path(argv[0]);
48 if (program == NULL) {
49 g_error("unable to locate %s executable", PACKAGE);
50 }
51 argv[0] = program;
52 }
54 bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
55 setlocale(LC_ALL, "");
56 bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
57 textdomain(GETTEXT_PACKAGE);
59 g_set_application_name(_("Package Update Indicator"));
61 gtk_init(&argc, &argv);
63 application = pui_application_new();
64 status = g_application_run(G_APPLICATION(application), argc, argv);
65 g_object_unref(application);
67 if (restart) {
68 /* application restart requested */
69 if (execv(argv[0], argv) == -1) {
70 g_error("exec: %s", g_strerror(errno));
71 }
72 }
74 exit(status);
75 }