Save version number to storage
diff --git a/twrp-functions.cpp b/twrp-functions.cpp
index 28d0ba5..3200017 100644
--- a/twrp-functions.cpp
+++ b/twrp-functions.cpp
@@ -15,6 +15,7 @@
 #include "common.h"
 #include "data.hpp"
 #include "bootloader.h"
+#include "variables.h"
 
 /*  Checks md5 for a path
     Return values:
@@ -385,4 +386,29 @@
 		system(script_file);
 		ui_print("\nFinished running %s script.\n", display_name);
 	}
+}
+
+void TWFunc::Output_Version(void) {
+	string Path, Command;
+	char version[255];
+
+	Path = DataManager::GetSettingsStoragePath();
+	if (!PartitionManager.Mount_By_Path(Path, false)) {
+		LOGI("Unable to mount '%s' to write version number.\n");
+		return;
+	}
+	Path += "/TWRP/.version";
+	if (Path_Exists(Path)) {
+		Command = "rm -f " + Path;
+		system(Command.c_str());
+	}
+	FILE *fp = fopen(Path.c_str(), "w");
+	if (fp == NULL) {
+		LOGE("Unable to open '%s'.\n", Path.c_str());
+		return;
+	}
+	strcpy(version, TW_VERSION_STR);
+	fwrite(version, sizeof(version[0]), strlen(version) / sizeof(version[0]), fp);
+	fclose(fp);
+	sync();
 }
\ No newline at end of file