summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdeploy36
1 files changed, 30 insertions, 6 deletions
diff --git a/deploy b/deploy
index dda2e7f..24cb246 100755
--- a/deploy
+++ b/deploy
@@ -1,11 +1,35 @@
#!/usr/bin/env janet
(use sh)
+## Check we've got the tools we need, an excuse to test macros
+(def missing-tools @[])
+
+(defmacro checktool [tool-name]
+ ~(try
+ ($< ,tool-name | @"")
+ ([err] (if
+ (string/has-prefix? "spawn failed" err)
+ (array/push missing-tools ,tool-name)))))
+
+(checktool 'templ)
+(checktool 'go)
+(checktool 'rsync)
+
+(if (any? missing-tools)
+ (do
+ (print (string "missing these tools: "
+ (string/join missing-tools " ")))
+ (os/exit 1)))
+
+## Set up our variables
(def user "fnurk")
(def host "samuelw.dev")
-(def bin-dir "/opt/tinygram/")
-(def asset-dir "/srv/tinygram/")
+(def appname "tinygram") # also user
+(def binaryname "tinygram")
+
+(def bin-dir (string "/opt/" appname "/"))
+(def asset-dir (string "/srv/" appname "/"))
(def service-dir "/etc/systemd/system/")
(def ssh-target (string user "@" host))
@@ -14,15 +38,15 @@
(def asset-target (string ssh-target ":" asset-dir))
(def service-target (string ssh-target ":" service-dir))
-(def rsync-path ["--rsync-path" "sudo -u tinygram rsync"])
+
+(def rsync-path ["--rsync-path" (string "sudo -u " appname " rsync")])
(def rsync-path-sudo ["--rsync-path" "sudo rsync"])
-(def rsync-bin-args [;rsync-path "tinygram" bin-target])
+(def rsync-bin-args [;rsync-path binaryname bin-target])
(def rsync-asset-args [;rsync-path "-r" "assets" asset-target])
(def rsync-service-args [;rsync-path-sudo "service/tinygram.service" service-target])
-(def rsync-service [;rsync-path "-r" "assets" asset-target])
-
+##Build and rsync the files!!
(print "-- building templ --")
($ templ generate)