]> git.sur5r.net Git - ngadmin/blobdiff - cli/src/com_firmware.c
Merge branch 'autotools'
[ngadmin] / cli / src / com_firmware.c
diff --git a/cli/src/com_firmware.c b/cli/src/com_firmware.c
new file mode 100644 (file)
index 0000000..3d5e76c
--- /dev/null
@@ -0,0 +1,59 @@
+
+#include "commands.h"
+
+
+int do_firmware_show (int argc, const char **argv UNUSED, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       int ret = 0;
+       
+       
+       if (argc > 0) {
+               printf("this command takes no argument\n");
+               ret = 1;
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = 1;
+               goto end;
+       }
+       
+       puts(sa->firmware);
+       
+end:
+       
+       return ret;
+}
+
+
+int do_firmware_upgrade (int argc, const char **argv, struct ngadmin *nga)
+{
+       const struct swi_attr *sa;
+       int i, ret = 0;
+       
+       
+       if (argc != 1) {
+               printf("usage: firmware upgrade <file>\n");
+               ret = 1;
+               goto end;
+       }
+       
+       sa = ngadmin_getCurrentSwitch(nga);
+       if (sa == NULL) {
+               printf("must be logged\n");
+               ret = 1;
+               goto end;
+       }
+       
+       i = ngadmin_upgradeFirmware(nga, argv[0]);
+       printErrCode(i);
+       
+end:
+       
+       return ret;
+}
+
+