mirror of
https://github.com/pesde-pkg/tooling.git
synced 2025-04-19 11:23:54 +01:00
feat(lib): use luau-unzip
This commit is contained in:
parent
c8e665c782
commit
a6f0000527
14 changed files with 350 additions and 122 deletions
|
@ -2,6 +2,29 @@ name = "pesde/argon"
|
||||||
version = "2.0.21"
|
version = "2.0.21"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -1,7 +1,30 @@
|
||||||
name = "pesde/asphalt"
|
name = "pesde/asphalt"
|
||||||
version = "0.8.3"
|
version = "0.8.4"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -2,6 +2,29 @@ name = "pesde/blink"
|
||||||
version = "0.15.1"
|
version = "0.15.1"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -2,6 +2,29 @@ name = "pesde/darklua"
|
||||||
version = "0.15.0"
|
version = "0.15.0"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -2,6 +2,29 @@ name = "pesde/luau_lsp"
|
||||||
version = "1.38.1"
|
version = "1.38.1"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -2,6 +2,29 @@ name = "pesde/rojo"
|
||||||
version = "7.4.4"
|
version = "7.4.4"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -1,7 +1,30 @@
|
||||||
name = "pesde/selene"
|
name = "pesde/selene"
|
||||||
version = "0.27.1"
|
version = "0.28.0"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -2,6 +2,29 @@ name = "pesde/stylua"
|
||||||
version = "2.0.2"
|
version = "2.0.2"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -2,6 +2,29 @@ name = "pesde/zap"
|
||||||
version = "0.6.16"
|
version = "0.6.16"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
@ -87,6 +110,7 @@ environment = "lune"
|
||||||
lib = "src/init.luau"
|
lib = "src/init.luau"
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
[graph."pesde/toolchainlib"."0.1.7 lune".dependencies]
|
||||||
|
"0x5eal/unzip" = ["0.1.0 luau", "unzip"]
|
||||||
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
"jiwonz/dirs" = ["0.1.2 lune", "dirs"]
|
||||||
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
"jiwonz/pathfs" = ["0.1.0 lune", "pathfs"]
|
||||||
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
"lukadev_0/option" = ["1.2.0 lune", "option"]
|
||||||
|
@ -101,6 +125,7 @@ dirs = [{ name = "jiwonz/dirs", version = "^0.1.1", index = "https://github.com/
|
||||||
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
option = [{ name = "lukadev_0/option", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
pathfs = [{ name = "jiwonz/pathfs", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index" }, "standard"]
|
||||||
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
result = [{ name = "lukadev_0/result", version = "^1.2.0", index = "https://github.com/daimond113/pesde-index" }, "peer"]
|
||||||
|
unzip = [{ name = "0x5eal/unzip", version = "^0.1.0", index = "https://github.com/daimond113/pesde-index", target = "luau" }, "standard"]
|
||||||
|
|
||||||
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
[graph."pesde/toolchainlib"."0.1.7 lune".pkg_ref.target]
|
||||||
environment = "lune"
|
environment = "lune"
|
||||||
|
|
|
@ -2,6 +2,30 @@ name = "pesde/toolchainlib"
|
||||||
version = "0.1.7"
|
version = "0.1.7"
|
||||||
target = "lune"
|
target = "lune"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau"]
|
||||||
|
direct = ["unzip", { name = "0x5eal/unzip", version = "^0.1.0", target = "luau" }, "standard"]
|
||||||
|
resolved_ty = "standard"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref]
|
||||||
|
ref_ty = "pesde"
|
||||||
|
name = "0x5eal/unzip"
|
||||||
|
version = "0.1.0"
|
||||||
|
index_url = "https://github.com/daimond113/pesde-index"
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.dependencies]
|
||||||
|
asciitable = [{ name = "kimpure/asciitable", version = "^0.1.4", index = "https://github.com/pesde-pkg/index" }, "dev"]
|
||||||
|
frktest = [{ name = "itsfrank/frktest", version = "^0.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
luau-lsp = [{ name = "pesde/luau_lsp", version = "^1.38.0", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
stylua = [{ name = "pesde/stylua", version = "^2.0.2", index = "https://github.com/pesde-pkg/index", target = "lune" }, "dev"]
|
||||||
|
|
||||||
|
[graph."0x5eal/unzip"."0.1.0 luau".pkg_ref.target]
|
||||||
|
environment = "luau"
|
||||||
|
lib = "lib/init.luau"
|
||||||
|
|
||||||
[graph."jiwonz/dirs"."0.1.2 lune"]
|
[graph."jiwonz/dirs"."0.1.2 lune"]
|
||||||
direct = ["dirs", { name = "jiwonz/dirs", version = "^0.1.1" }, "standard"]
|
direct = ["dirs", { name = "jiwonz/dirs", version = "^0.1.1" }, "standard"]
|
||||||
resolved_ty = "standard"
|
resolved_ty = "standard"
|
||||||
|
|
|
@ -12,6 +12,7 @@ lib = "src/init.luau"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
pathfs = { name = "jiwonz/pathfs", version = "^0.1.0" }
|
pathfs = { name = "jiwonz/pathfs", version = "^0.1.0" }
|
||||||
dirs = { name = "jiwonz/dirs", version = "^0.1.1" }
|
dirs = { name = "jiwonz/dirs", version = "^0.1.1" }
|
||||||
|
unzip = { name = "0x5eal/unzip", version = "^0.1.0", target = "luau" }
|
||||||
|
|
||||||
[peer_dependencies]
|
[peer_dependencies]
|
||||||
result = { name = "lukadev_0/result", version = "^1.2.0" }
|
result = { name = "lukadev_0/result", version = "^1.2.0" }
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
local serde = require("@lune/serde")
|
local unzip = require("../luau_packages/unzip")
|
||||||
local process = require("@lune/process")
|
|
||||||
|
|
||||||
local dirs = require("../lune_packages/dirs")
|
|
||||||
local pathfs = require("../lune_packages/pathfs")
|
|
||||||
|
|
||||||
local Result = require("../lune_packages/result")
|
local Result = require("../lune_packages/result")
|
||||||
local Option = require("../lune_packages/option")
|
local Option = require("../lune_packages/option")
|
||||||
|
@ -10,7 +6,8 @@ type Result<T, E> = Result.Result<T, E>
|
||||||
type Option<T> = Option.Option<T>
|
type Option<T> = Option.Option<T>
|
||||||
|
|
||||||
local revTable = require("./utils/rev_table")
|
local revTable = require("./utils/rev_table")
|
||||||
local CommandBuilder = require("./utils/exec")
|
local eq = require("./utils/eq")
|
||||||
|
local PlatformDescriptor = require("./platform/descriptor")
|
||||||
|
|
||||||
export type CompressionFormat = "TarGz" | "TarXz" | "Zip"
|
export type CompressionFormat = "TarGz" | "TarXz" | "Zip"
|
||||||
|
|
||||||
|
@ -36,70 +33,51 @@ local function detectFormat(fileName: string): Option<CompressionFormat>
|
||||||
end
|
end
|
||||||
|
|
||||||
-- TODO: Use a type function to make all CompressionFormat lowercase
|
-- TODO: Use a type function to make all CompressionFormat lowercase
|
||||||
local decompress: { [CompressionFormat]: (compressed: buffer) -> Result<pathfs.AsPath, string> } = {
|
local extractBinary: {
|
||||||
Zip = function(compressed: buffer)
|
[CompressionFormat]: (
|
||||||
return (Option.from(dirs.cacheDir()):map(function(cacheDir)
|
compressed: buffer,
|
||||||
local progCacheDir = cacheDir:join("pesde-bin")
|
binaryName: string,
|
||||||
if not pathfs.isDir(progCacheDir) then
|
targetPlatform: PlatformDescriptor.PlatformDescriptor
|
||||||
pathfs.writeDir(progCacheDir)
|
) -> Result<buffer, string>,
|
||||||
|
} =
|
||||||
|
{
|
||||||
|
Zip = function(compressed, binaryName, targetPlatform)
|
||||||
|
local reader = unzip.load(compressed)
|
||||||
|
|
||||||
|
local binaryEntry = reader:findEntry(binaryName)
|
||||||
|
local binaryContents = nil
|
||||||
|
|
||||||
|
if binaryEntry then
|
||||||
|
binaryContents = reader:extract(binaryEntry, { type = "binary" }) :: buffer
|
||||||
|
else
|
||||||
|
-- Walk through the entries to find an executable
|
||||||
|
reader:walk(function(entry)
|
||||||
|
if binaryEntry then
|
||||||
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
return progCacheDir :: pathfs.Path
|
if entry.isDirectory then
|
||||||
end)):match({
|
return
|
||||||
Some = function(dir: pathfs.Path)
|
|
||||||
-- Generate a unique file name and write the contents to the temporary file
|
|
||||||
local tmpFile = dir:join(`{serde.hash("blake3", compressed)}.zip`)
|
|
||||||
local tmpFilePath = tmpFile:toString()
|
|
||||||
pathfs.writeFile(tmpFile, compressed)
|
|
||||||
|
|
||||||
-- Create the directory to decompress into
|
|
||||||
local decompressedDir = pathfs.Path.from(tmpFile):withExtension("")
|
|
||||||
pathfs.writeDir(decompressedDir)
|
|
||||||
|
|
||||||
-- Run unzip to decompress the file
|
|
||||||
local child = (if process.os == "windows"
|
|
||||||
-- Thanks windows :)
|
|
||||||
then CommandBuilder.new("powershell"):withArgs({
|
|
||||||
"-ExecutionPolicy RemoteSigned",
|
|
||||||
`-c \`"Import-Module Microsoft.PowerShell.Archive; Expand-Archive -LiteralPath '{tmpFilePath}' -DestinationPath '{decompressedDir:toString()}'\`"`,
|
|
||||||
})
|
|
||||||
else CommandBuilder.new("unzip"):withArgs({ tmpFilePath, "-d", decompressedDir:toString() }))
|
|
||||||
:withStdioStrategy({
|
|
||||||
-- Powershell on Windows writes errors to stdout. Bruh
|
|
||||||
stdout = Option.Some(
|
|
||||||
if process.os == "windows" and process.env.PESDE_LOG == "debug"
|
|
||||||
then "forward"
|
|
||||||
else "pipe" :: CommandBuilder.StdioStrategy
|
|
||||||
),
|
|
||||||
stderr = Option.Some(
|
|
||||||
if process.env.PESDE_LOG == "debug"
|
|
||||||
then "forward"
|
|
||||||
else "pipe" :: CommandBuilder.StdioStrategy
|
|
||||||
),
|
|
||||||
} :: CommandBuilder.IoStrategyMapping)
|
|
||||||
:intoChildProcess()
|
|
||||||
|
|
||||||
child:start()
|
|
||||||
local status = child:waitForChild()
|
|
||||||
|
|
||||||
-- Cleanup temporary file and handle errors
|
|
||||||
pathfs.removeFile(tmpFile)
|
|
||||||
if not status.ok then
|
|
||||||
return Result.Err(
|
|
||||||
`DecompressError::CommandFailed(exitCode={status.code})`
|
|
||||||
) :: Result<pathfs.AsPath, string>
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return Result.Ok(decompressedDir) :: Result<pathfs.AsPath, string>
|
local contents = reader:extract(entry, { type = "binary" }) :: buffer
|
||||||
end,
|
local executablePlatform = PlatformDescriptor.fromExecutable(contents)
|
||||||
|
|
||||||
None = function()
|
if executablePlatform:isOk() and eq(executablePlatform:unwrap(), targetPlatform) then
|
||||||
return Result.Err("DecompressError::NoCacheDir") :: Result<pathfs.AsPath, string>
|
binaryEntry = entry
|
||||||
end,
|
binaryContents = contents
|
||||||
})
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
if not binaryContents then
|
||||||
|
return Result.Err("ExtractBinaryError::BinaryNotFound" :: string)
|
||||||
|
end
|
||||||
|
|
||||||
|
return Result.Ok(binaryContents)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
-- TODO: Other formats
|
-- TODO: Other formats
|
||||||
}
|
}
|
||||||
|
|
||||||
return { decompress = decompress, detectFormat = detectFormat }
|
return { extractBinary = extractBinary, detectFormat = detectFormat }
|
||||||
|
|
|
@ -45,12 +45,16 @@ local function warn(...)
|
||||||
stdio.ewrite(`{WARN_PREFIX} {stdio.format(...)}\n`)
|
stdio.ewrite(`{WARN_PREFIX} {stdio.format(...)}\n`)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function downloadAndDecompress(asset: {
|
local function downloadAndExtractBinary(
|
||||||
|
binaryName: string,
|
||||||
|
targetPlatform: PlatformDescriptor.PlatformDescriptor,
|
||||||
|
asset: {
|
||||||
name: string,
|
name: string,
|
||||||
browser_download_url: string,
|
browser_download_url: string,
|
||||||
size: number,
|
size: number,
|
||||||
content_type: string,
|
content_type: string,
|
||||||
}): Option<pathfs.Path>
|
}
|
||||||
|
): Option<buffer>
|
||||||
return compression
|
return compression
|
||||||
.detectFormat(asset.name)
|
.detectFormat(asset.name)
|
||||||
:andThen(function(format: compression.CompressionFormat)
|
:andThen(function(format: compression.CompressionFormat)
|
||||||
|
@ -59,8 +63,10 @@ local function downloadAndDecompress(asset: {
|
||||||
return error(`Failed to download asset {asset.name}: HTTP Code {contentsResp.statusCode}`)
|
return error(`Failed to download asset {asset.name}: HTTP Code {contentsResp.statusCode}`)
|
||||||
end
|
end
|
||||||
|
|
||||||
return ResultExt.ok(compression.decompress[format](buffer.fromstring(contentsResp.body)))
|
return ResultExt.ok(
|
||||||
end) :: Option<pathfs.Path>
|
compression.extractBinary[format](buffer.fromstring(contentsResp.body), binaryName, targetPlatform)
|
||||||
|
)
|
||||||
|
end) :: Option<buffer>
|
||||||
end
|
end
|
||||||
|
|
||||||
local function chmod(path: pathfs.Path, mode: number | string)
|
local function chmod(path: pathfs.Path, mode: number | string)
|
||||||
|
@ -195,6 +201,7 @@ function installTool(tool: ToolId, installPath: pathfs.Path): number
|
||||||
|
|
||||||
local currentDesc = PlatformDescriptor.currentSystem()
|
local currentDesc = PlatformDescriptor.currentSystem()
|
||||||
local aliasPath = pathfs.Path.from(toolAlias):withExtension(if currentDesc.os == "windows" then "exe" else "")
|
local aliasPath = pathfs.Path.from(toolAlias):withExtension(if currentDesc.os == "windows" then "exe" else "")
|
||||||
|
local aliasName = aliasPath:toString()
|
||||||
|
|
||||||
for _, asset in assets do
|
for _, asset in assets do
|
||||||
local desc = PlatformDescriptor.fromString(asset.name)
|
local desc = PlatformDescriptor.fromString(asset.name)
|
||||||
|
@ -210,33 +217,28 @@ function installTool(tool: ToolId, installPath: pathfs.Path): number
|
||||||
|
|
||||||
barFns.next(bar) -- download
|
barFns.next(bar) -- download
|
||||||
|
|
||||||
local binaryPath: pathfs.Path
|
local binaryContents: buffer
|
||||||
if matchingAsset == nil then
|
if matchingAsset == nil then
|
||||||
stdio.write("\x1b[2K\x1b[0G")
|
stdio.write("\x1b[2K\x1b[0G")
|
||||||
warn("Pesde could not find a matching binary for your system")
|
warn("Pesde could not find a matching binary for your system")
|
||||||
warn("Will now attempt to download all binaries and find a matching one")
|
warn("Will now attempt to download all binaries and find a matching one")
|
||||||
|
|
||||||
for _, asset in assets do
|
for _, asset in assets do
|
||||||
local decompressedPath = downloadAndDecompress(asset)
|
local contents = downloadAndExtractBinary(aliasName, currentDesc, asset)
|
||||||
if decompressedPath:isSome() then
|
if contents:isSome() then
|
||||||
local path = decompressedPath:unwrap()
|
binaryContents = contents:unwrap()
|
||||||
for _, file in pathfs.readDir(path) do
|
|
||||||
local filePath = path:join(file)
|
|
||||||
local nativeDesc = PlatformDescriptor.fromExecutable(filePath:toString())
|
|
||||||
|
|
||||||
if nativeDesc:isOk() and eq(currentDesc, nativeDesc:unwrap()) then
|
|
||||||
binaryPath = filePath
|
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
local decompressedPath = downloadAndDecompress(matchingAsset):unwrap()
|
downloadAndExtractBinary(aliasName, currentDesc, matchingAsset):match({
|
||||||
binaryPath = decompressedPath:join(aliasPath)
|
Some = function(contents: buffer)
|
||||||
if not pathfs.isFile(binaryPath) then
|
binaryContents = contents
|
||||||
error(`No matching binary found in {decompressedPath}`)
|
end,
|
||||||
end
|
None = function()
|
||||||
|
error(`No matching binary found`)
|
||||||
|
end,
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
barFns.next(bar) -- install
|
barFns.next(bar) -- install
|
||||||
|
@ -248,7 +250,7 @@ function installTool(tool: ToolId, installPath: pathfs.Path): number
|
||||||
pathfs.writeDir(toolDir)
|
pathfs.writeDir(toolDir)
|
||||||
end
|
end
|
||||||
|
|
||||||
pathfs.move(binaryPath, installPath)
|
pathfs.writeFile(installPath, binaryContents)
|
||||||
|
|
||||||
-- IDEA: In order to eliminate fs read overhead on startup and to disallow
|
-- IDEA: In order to eliminate fs read overhead on startup and to disallow
|
||||||
-- the use of the tool binary when outside a package where it is installed,
|
-- the use of the tool binary when outside a package where it is installed,
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
local process = require("@lune/process")
|
local process = require("@lune/process")
|
||||||
local fs = require("@lune/fs")
|
|
||||||
|
|
||||||
local os = require("./os")
|
local os = require("./os")
|
||||||
local arch = require("./arch")
|
local arch = require("./arch")
|
||||||
|
@ -45,9 +44,8 @@ function PlatformDescriptor.fromString(str: string)
|
||||||
} :: PlatformDescriptor)
|
} :: PlatformDescriptor)
|
||||||
end
|
end
|
||||||
|
|
||||||
function PlatformDescriptor.fromExecutable(path: string): result.PlatformResult<PlatformDescriptor>
|
function PlatformDescriptor.fromExecutable(contents: buffer): result.PlatformResult<PlatformDescriptor>
|
||||||
local binaryContents = fs.readFile(path)
|
local detected = Option.from(detectFromExecutable(contents))
|
||||||
local detected = Option.from(detectFromExecutable(buffer.fromstring(binaryContents)))
|
|
||||||
:map(function(inner: detectFromExecutable.ExecutableDetectionResult): ExecutableDetectionResult
|
:map(function(inner: detectFromExecutable.ExecutableDetectionResult): ExecutableDetectionResult
|
||||||
return {
|
return {
|
||||||
os = Option.from(inner.os) :: Option<process.OS>,
|
os = Option.from(inner.os) :: Option<process.OS>,
|
||||||
|
|
Loading…
Add table
Reference in a new issue