diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | cli/Makefile.am | 20 | ||||
-rw-r--r-- | cli/main.c | 76 | ||||
-rw-r--r-- | configure.ac | 8 |
5 files changed, 107 insertions, 1 deletions
@@ -39,6 +39,8 @@ src/tests/test-at-serial-port src/tests/test-sms policy/org.freedesktop.modem-manager.policy +cli/mmcli + libqcdm/tests/test-qcdm libwmc/tests/test-wmc diff --git a/Makefile.am b/Makefile.am index e55d3431..474b78cf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ -SUBDIRS = . marshallers build-aux data include libmm-common libqcdm libwmc src plugins introspection libmm-glib po test docs +SUBDIRS = . marshallers build-aux data include libmm-common libqcdm libwmc src plugins introspection libmm-glib cli po test docs DISTCHECK_CONFIGURE_FLAGS = \ --with-udev-base-dir="$$dc_install_base" \ diff --git a/cli/Makefile.am b/cli/Makefile.am new file mode 100644 index 00000000..ed7ef3d0 --- /dev/null +++ b/cli/Makefile.am @@ -0,0 +1,20 @@ +bin_PROGRAMS = mmcli + +mmcli_CPPFLAGS = \ + $(MMCLI_CFLAGS) \ + -I$(top_srcdir) \ + -I$(top_srcdir)/include \ + -I$(top_builddir)/include \ + -I$(top_srcdir)/libmm-common \ + -I$(top_builddir)/libmm-common \ + -I$(top_srcdir)/libmm-glib + +mmcli_SOURCES = \ + main.c + +mmcli_LDADD = \ + $(MMCLI_LIBS) \ + $(top_builddir)/libmm-glib/libmm-glib.la + + + diff --git a/cli/main.c b/cli/main.c new file mode 100644 index 00000000..023f1c1b --- /dev/null +++ b/cli/main.c @@ -0,0 +1,76 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * mm-cli -- Control modem status & access information from the command line + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * Copyright (C) 2011 Aleksander Morgado <aleksander@gnu.org> + */ + +#include "config.h" + +#include <stdio.h> +#include <stdlib.h> +#include <locale.h> +#include <string.h> + +#include <glib.h> +#include <gio/gio.h> + +#include "libmm-glib.h" + +#define PROGRAM_NAME "mmcli" +#define PROGRAM_VERSION PACKAGE_VERSION + +/* Context */ +static gboolean version_flag; + +static GOptionEntry entries[] = { + { "version", 'V', 0, G_OPTION_ARG_NONE, &version_flag, + "Print version", + NULL + }, + { NULL } +}; + +static void +print_version_and_exit (void) +{ + g_print ("\n" + PROGRAM_NAME " " PROGRAM_VERSION "\n" + "Copyright (2011) Aleksander Morgado\n" + "License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>\n" + "This is free software: you are free to change and redistribute it.\n" + "There is NO WARRANTY, to the extent permitted by law.\n" + "\n"); + exit (EXIT_SUCCESS); +} + +gint +main (gint argc, gchar **argv) +{ + GOptionContext *context; + + setlocale (LC_ALL, ""); + + context = g_option_context_new ("- Control and monitor the ModemManager"); + g_option_context_add_main_entries (context, entries, NULL); + g_option_context_parse (context, &argc, &argv, NULL); + + if (version_flag) + print_version_and_exit (); + + return EXIT_SUCCESS; +} + diff --git a/configure.ac b/configure.ac index 60f7d105..c38de115 100644 --- a/configure.ac +++ b/configure.ac @@ -67,6 +67,13 @@ PKG_CHECK_MODULES(LIBMM, AC_SUBST(LIBMM_CFLAGS) AC_SUBST(LIBMM_LIBS) +PKG_CHECK_MODULES(MMCLI, + glib-2.0 >= 2.30 + gobject-2.0 + gio-2.0) +AC_SUBST(MMCLI_CFLAGS) +AC_SUBST(LIBMM_LIBS) + PKG_CHECK_MODULES(GUDEV, gudev-1.0) AC_SUBST(GUDEV_CFLAGS) AC_SUBST(GUDEV_LIBS) @@ -203,6 +210,7 @@ docs/reference/Makefile docs/reference/api/Makefile docs/reference/api/version.xml libmm-glib/Makefile +cli/Makefile ]) AC_OUTPUT |