aboutsummaryrefslogtreecommitdiff
path: root/examples/tomo-install/tomo-install.tm
diff options
context:
space:
mode:
Diffstat (limited to 'examples/tomo-install/tomo-install.tm')
-rw-r--r--examples/tomo-install/tomo-install.tm26
1 files changed, 13 insertions, 13 deletions
diff --git a/examples/tomo-install/tomo-install.tm b/examples/tomo-install/tomo-install.tm
index 0a255987..fd8b3c40 100644
--- a/examples/tomo-install/tomo-install.tm
+++ b/examples/tomo-install/tomo-install.tm
@@ -10,19 +10,19 @@ _HELP := "
Usage: $_USAGE
"
-func find_urls(path:Path -> [Text]):
+func find_urls(path:Path -> [Text])
urls : @[Text] = @[]
- if path.is_directory():
- for f in path.children():
+ if path.is_directory()
+ for f in path.children()
urls.insert_all(find_urls(f))
- else if path.is_file() and path.extension() == ".tm":
- for line in path.by_line()!:
- if captures := line.pattern_captures($Pat/use{space}{url}/) or line.pattern_captures($Pat/{id}{space}:={space}use{space}{url}/):
+ else if path.is_file() and path.extension() == ".tm"
+ for line in path.by_line()!
+ if captures := line.pattern_captures($Pat/use{space}{url}/) or line.pattern_captures($Pat/{id}{space}:={space}use{space}{url}/)
urls.insert(captures[-1])
return urls
-func main(paths:[Path]):
- if paths.length == 0:
+func main(paths:[Path])
+ if paths.length == 0
paths = [(./)]
urls := (++: find_urls(p) for p in paths) or []
@@ -32,23 +32,23 @@ func main(paths:[Path]):
(~/.local/share/tomo/installed).create_directory()
(~/.local/share/tomo/lib).create_directory()
- for url in urls:
+ for url in urls
original_url := url
url_without_protocol := url.trim_pattern($Pat"http{0-1 s}://", right=no)
hash := $Shell@(echo -n @url_without_protocol | sha256sum).get_output()!.slice(to=32)
- if (~/.local/share/tomo/installed/$hash).is_directory():
+ if (~/.local/share/tomo/installed/$hash).is_directory()
say("Already installed: $url")
skip
alias : Text? = none
curl_flags := ["-L"]
- if github := url_without_protocol.pattern_captures($Pat"github.com/{!/}/{!/}#{..}"):
+ if github := url_without_protocol.pattern_captures($Pat"github.com/{!/}/{!/}#{..}")
user := github[1]
repo := github[2]
tag := github[3]
url = "https://api.github.com/repos/$user/$repo/tarball/$tag"
alias = "$(repo.without_prefix("tomo-")).$(tag).$(user)"
- if github_token:
+ if github_token
curl_flags ++= ["-H", "Authorization: Bearer $github_token"]
curl_flags ++= [
"-H", "Accept: application/vnd.github+json",
@@ -69,7 +69,7 @@ func main(paths:[Path]):
fi
`.get_output()!)
- if alias:
+ if alias
say($Shell(
set -exuo pipefail
ln -f -s @hash ~/.local/share/tomo/installed/@alias