From 326076c46cbdc7afc9bcc2df56aa0b95d174f927 Mon Sep 17 00:00:00 2001
From: flu0r1ne <flu0r1ne@flu0r1ne.net>
Date: Tue, 12 Sep 2023 15:58:43 -0500
Subject: Add version subcommand

---
 src/main.cpp    | 10 ++++++++--
 src/version.hpp |  3 +++
 2 files changed, 11 insertions(+), 2 deletions(-)
 create mode 100644 src/version.hpp

(limited to 'src')

diff --git a/src/main.cpp b/src/main.cpp
index a5dbf8b..e685e10 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -4,6 +4,8 @@
  * Copyright (C) 2023 Alex David <flu0r1ne@flu0r1ne.net>
  */
 
+#include "version.hpp"
+
 #include <iostream>
 #include <string>
 #include <vector>
@@ -94,12 +96,14 @@ constexpr char const * DEFAULT_OUTPUT_PATH = "/etc/systemd/network/";
  */
 
 void die_usage(const char *prog) {
-	err("Usage: %s { install, generate } [ OPTIONS ] { -h, CONFIG_FILE }", prog);
+	err("Usage: %s {  install, generate } [ OPTIONS ] { -h, CONFIG_FILE }", prog);
+	err("Usage: %s version", prog);
 	die("Use -h for help");
 }
 
 void print_help(const char *prog) {
-	err("Usage: %s { install, generate } [ OPTIONS ] { -h, CONFIG_FILE }\n", prog);
+	err("Usage: %s { install, generate } [ OPTIONS ] { -h, CONFIG_FILE }", prog);
+	err("Usage: %s version\n", prog);
 	err("  CONFIG_FILE is the complete path to a WireGuard configuration file, used by");
 	err("  `wg-quick`. `wg2nd` will convert the WireGuard configuration to networkd");
 	err("  files.\n");
@@ -437,6 +441,8 @@ int main(int argc, char **argv) {
 		return wg2nd_generate(prog, argc - 1, argv + 1);
 	} else if (action == "install") {
 		return wg2nd_install(prog, argc - 1, argv + 1);
+	} else if (action == "version") {
+		printf("%s\n", VERSION);
 	} else if (action == "-h" || action == "--help") {
 		print_help(prog);
 	} else {
diff --git a/src/version.hpp b/src/version.hpp
new file mode 100644
index 0000000..3e8675e
--- /dev/null
+++ b/src/version.hpp
@@ -0,0 +1,3 @@
+#pragma once
+
+constexpr char const * VERSION = "v0.1.0";
-- 
cgit v1.2.3