Add option -h to dump complete set of supported commands
authorPhilippe Teuwen <phil@teuwen.org>
Wed, 26 Mar 2014 21:08:55 +0000 (22:08 +0100)
committerPhilippe Teuwen <phil@teuwen.org>
Wed, 26 Mar 2014 21:33:11 +0000 (22:33 +0100)
Usage: ./proxmark3 -h
Display both offline & online commands, online commands are flagged.

git-svn-id: https://proxmark3.googlecode.com/svn/trunk@850 ef4ab9da-24cd-11de-8aaa-f3a34680c41f

client/cmdparser.c
client/proxmark3.c

index 7ea1bf47023d180b31dea6866164cedcfd5fda1c..48d044d591e1583f5da7f3c932006b6f627aad5c 100644 (file)
@@ -21,8 +21,10 @@ void CmdsHelp(const command_t Commands[])
   int i = 0;
   while (Commands[i].Name)
   {
   int i = 0;
   while (Commands[i].Name)
   {
-    if (!offline || Commands[i].Offline)
+    if (offline == 0 || Commands[i].Offline)
       PrintAndLog("%-16s %s", Commands[i].Name, Commands[i].Help);
       PrintAndLog("%-16s %s", Commands[i].Name, Commands[i].Help);
+    if (offline == 2 && !Commands[i].Offline)
+      PrintAndLog("%-14s @ %s", Commands[i].Name, Commands[i].Help);
     ++i;
   }
 }
     ++i;
   }
 }
index 91bc7b3140755690726547d323c96f93453dc2ac..e40b4defe38d7dee1d3b4d48a4c1b3ae6360b615 100644 (file)
@@ -206,15 +206,59 @@ static void *main_loop(void *targ) {
   return NULL;
 }
 
   return NULL;
 }
 
+#define DUMPHELP(cmd) \
+  do { \
+    printf("%s\n", cmd); \
+    printf("---------------------------------------------\n"); \
+    CommandReceived(cmd); \
+    printf("\n"); \
+  } while (0)
+
+static void dumphelp()
+{
+  offline=2;
+  printf("\n------------PROXMARK3 HELP DUMP--------------\n");
+  printf("Some commands are available only if a Proxmark is actually connected,\n");
+  printf("Those commands are flagged with \"@\" in front of their description.\n");
+  printf("\n");
+  DUMPHELP("help");
+  DUMPHELP("data help");
+  DUMPHELP("hf help");
+  DUMPHELP("hf 14a help");
+  DUMPHELP("hf 14b help");
+  DUMPHELP("hf 15 help");
+  DUMPHELP("hf epa help");
+  DUMPHELP("hf legic help");
+  DUMPHELP("hf iclass help");
+  DUMPHELP("hf mf help");
+  DUMPHELP("hw help");
+  DUMPHELP("lf help");
+  DUMPHELP("lf em4x help");
+  DUMPHELP("lf hid help");
+  DUMPHELP("lf ti help");
+  DUMPHELP("lf hitag help");
+  DUMPHELP("lf pcf7931 help");
+  DUMPHELP("lf t55xx help");
+}
+
 int main(int argc, char* argv[]) {
        srand(time(0));
   
        if (argc < 2) {
                printf("syntax: %s <port>\n\n",argv[0]);
                printf("\tLinux example:'%s /dev/ttyACM0'\n\n", argv[0]);
 int main(int argc, char* argv[]) {
        srand(time(0));
   
        if (argc < 2) {
                printf("syntax: %s <port>\n\n",argv[0]);
                printf("\tLinux example:'%s /dev/ttyACM0'\n\n", argv[0]);
+               printf("help:   %s -h\n\n", argv[0]);
+               printf("\tDump all interactive help at once\n");
                return 1;
        }
   
                return 1;
        }
   
+       if (strcmp(argv[1], "-h") == 0) {
+               printf("syntax: %s <port>\n\n",argv[0]);
+               printf("\tLinux example:'%s /dev/ttyACM0'\n\n", argv[0]);
+               offline = 2;
+               dumphelp();
+               return 0;
+       }
        // Make sure to initialize
        struct main_loop_arg marg = {
                .usb_present = 0,
        // Make sure to initialize
        struct main_loop_arg marg = {
                .usb_present = 0,
Impressum, Datenschutz