From 6a3d62f30b92c1306d0f048a650c9f9cdda7f36d Mon Sep 17 00:00:00 2001 From: Erin Nova Date: Sun, 6 Mar 2022 21:10:56 -0500 Subject: [PATCH] Add deadswitch nim script --- scripts/deadswitch.nim | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 scripts/deadswitch.nim diff --git a/scripts/deadswitch.nim b/scripts/deadswitch.nim new file mode 100644 index 0000000..dd83acb --- /dev/null +++ b/scripts/deadswitch.nim @@ -0,0 +1,65 @@ +import std/[times, os] +import strutils + +# ./deadswitch + +var DATE = "" +var TIME = "" +var FILE = "" +var PATH = "" + +proc read_args() = + try: + DATE = paramStr(2) + TIME = paramStr(3) + FILE = paramStr(1) + PATH = paramStr(4) + except: + echo "Please provide commandline arguments in the format:" + echo " " + quit(QuitFailure) + +type PayloadType = enum Plaintext, Encrypted +type Payload = tuple + filename: string + contents: string + +proc release_payload(p_type: PayloadType, payload: Payload) = + echo "Releasing payload..." + sleep(1000) + if p_type == PayloadType.Plaintext: + echo payload.filename + echo payload.contents + else: + echo payload.filename + echo "" + + # copy the file contents + writeFile(PATH & payload.filename, payload.contents) + +while true: + read_args() + + writeFile(PATH & FILE, DATE) # temp file + let now = now() # get current localtime + let now_date = now.format("yyyy-MM-dd") # extract the date + let now_time = now.format("HH:mm") # extract the time + + let file = readFile(FILE) # read in the contents of the payload file + let format = FILE.split('.') # get the format of the file + + # check the file type based on it's format + var p_type = PayloadType.Plaintext + case format[high(format)]: + of "age", "pgp", "gpg": + p_type = PayloadType.Encrypted + else: + p_type = PayloadType.Plaintext + + if now_date == DATE: #and now_time == TIME: # check if both date & time are the same + let payload: Payload = (filename: FILE, contents: file) # create a new payload object + release_payload(p_type, payload) # release it! + break + + echo "Not now :c" + sleep(10000) # wait 10 seconds (10000 milliseconds)