diff options
| author | hachem <im@hachem.wtf> | 2026-10-07 22:57:09 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-10-07 22:57:09 +0200 |
| commit | 5f6deca073728d0dafa2cd47d841b28d54af3aaf (patch) | |
| tree | aea2a645d819d52aa95fcc27056a64a355ef64b7 /gils/gils.rv | |
| parent | e55291a32a8b3f7b5c105cd79e86f3c19f19b3d4 (diff) | |
fix: relative paths + run revo scripts
Diffstat (limited to 'gils/gils.rv')
| -rw-r--r-- | gils/gils.rv | 20 |
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) |
