]> git.sur5r.net Git - openocd/commitdiff
version command: make it scriptable
authorØyvind Harboe <oyvind.harboe@zylin.com>
Fri, 10 Sep 2010 11:16:13 +0000 (13:16 +0200)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Sat, 11 Sep 2010 09:42:44 +0000 (11:42 +0200)
you can now set a variable in a script like set version [version].

Also version takes an optional argument "git" to show git version
of source. If git is not installed during the build, then this
will yield an error that is ignored during the build and "version git"
returns an empty string.

Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
src/Makefile.am
src/openocd.c

index a566b4d422fdce4cfd98079a4e3fca3dd55de687..56385f7e19ae04599fd194e5f2f6d9f0a0724230 100644 (file)
@@ -44,6 +44,7 @@ libopenocd_la_CPPFLAGS += -DRELSTR=\"\"
 else
 libopenocd_la_CPPFLAGS += -DRELSTR=\"`$(top_srcdir)/guess-rev.sh $(top_srcdir)`\"
 endif
+libopenocd_la_CPPFLAGS += -DGITVERSION=\"`cd $(top_srcdir) && git describe`\"
 
 # add default CPPFLAGS
 libopenocd_la_CPPFLAGS += $(AM_CPPFLAGS) $(CPPFLAGS)
index 69ed7601e63689343f9256e330b3a6868dc93fcd..5f890dbe0fc231019a4c925b9c0fea3d211f306c 100644 (file)
@@ -2,7 +2,7 @@
  *   Copyright (C) 2005 by Dominic Rath                                    *
  *   Dominic.Rath@gmx.de                                                   *
  *                                                                         *
- *   Copyright (C) 2007,2008 Øyvind Harboe                                 *
+ *   Copyright (C) 2007-2010 Øyvind Harboe                                 *
  *   oyvind.harboe@zylin.com                                               *
  *                                                                         *
  *   Copyright (C) 2008 Richard Missenden                                  *
 #define OPENOCD_VERSION \
                "Open On-Chip Debugger " VERSION RELSTR " (" PKGBLDDATE ")"
 
-/* Give TELNET a way to find out what version this is */
-COMMAND_HANDLER(handle_version_command)
+/* Give scripts and TELNET a way to find out what version this is */
+static int jim_version_command(Jim_Interp *interp, int argc,
+               Jim_Obj * const *argv)
 {
-       if (CMD_ARGC != 0)
-               return ERROR_COMMAND_SYNTAX_ERROR;
-
-       command_print(CMD_CTX, OPENOCD_VERSION);
+       if (argc > 2)
+       {
+               return JIM_ERR;
+       }
+       const char *str = "";
+       char * version_str;
+       version_str = OPENOCD_VERSION;
+       
+       if (argc == 2)
+               str = Jim_GetString(argv[1], NULL);
+
+       if (strcmp("git", str) == 0)
+       {
+               version_str = GITVERSION;
+       } 
+       
+       Jim_SetResult(interp, Jim_NewStringObj(interp, version_str, -1));
 
-       return ERROR_OK;
+       return JIM_OK;
 }
 
 static int log_target_callback_event_handler(struct target *target, enum target_event event, void *priv)
@@ -174,7 +188,7 @@ COMMAND_HANDLER(handle_add_script_search_dir_command)
 static const struct command_registration openocd_command_handlers[] = {
        {
                .name = "version",
-               .handler = &handle_version_command,
+               .jim_handler = jim_version_command,
                .mode = COMMAND_ANY,
                .help = "show program version",
        },