hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/gils/gils.rv
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-10-07 22:57:09 +0200
committerhachem <im@hachem.wtf>2026-10-07 22:57:09 +0200
commit5f6deca073728d0dafa2cd47d841b28d54af3aaf (patch)
treeaea2a645d819d52aa95fcc27056a64a355ef64b7 /gils/gils.rv
parente55291a32a8b3f7b5c105cd79e86f3c19f19b3d4 (diff)
fix: relative paths + run revo scripts
Diffstat (limited to 'gils/gils.rv')
-rw-r--r--gils/gils.rv20
1 files changed, 10 insertions, 10 deletions
diff --git a/gils/gils.rv b/gils/gils.rv
index afd0bbd..08c97cd 100644
--- a/gils/gils.rv
+++ b/gils/gils.rv
@@ -24,23 +24,23 @@ end
# scripts read their args off env.ctx, stashed here before eval
global env = { ctx = :nil }
-global abspath = fn(arg) do
- if arg:len() == 0 return wd.path
- let path = arg
- if arg[0] != "/" do
- if wd.path == "/" do path = "/#{arg}" end
- else do path = "#{wd.path}/#{arg}" end
+# first use of unless in history
+global expand_path = fn(path) do
+ if path:len() == 0 return wd.path
+ unless (path[0] == "/") do
+ const slash = unless (wd.path == "/") "/" else ""
+ path = "#{wd.path}#{slash}#{path}"
end
- while (path:len() > 1 and path[path:len() - 1] == "/") do path = path[0..(path:len() - 1)] end
return path
end
-fn run_script(name, ctx) do
- const path = "/bin/#{name}.rv"
+fn run_script_path(path, label, ctx) do
const size = fs:size(path)
if size < 0 return :false
env.ctx = ctx
const error_msg = eval_script(fs:read_bytes(path, 0, size))
- if error_msg != :nil do puts("#{name}: #{error_msg}\n") end
+ if error_msg != :nil do puts("#{label}: #{error_msg}\n") end
return :true
end
+
+fn run_script(name, ctx) run_script_path("/bin/#{name}.rv", name, ctx)