Commit graph

61 commits

Author SHA1 Message Date
26280ed820
chore(lib): prepare for v0.1.7 2024-12-28 09:21:20 +00:00
472813b41b
style: apply stylua formatter 2024-12-25 16:11:05 +00:00
ed8d5594b9
fix(lib): unhandled error when no gh CLI present
We did not correctly handle the case if the `gh` CLI was not present,
since `process.spawn` errors. We now wrap it in a `Result.try` and
handle that as required.
2024-12-25 15:56:39 +00:00
aba182cea5
fix(lib): handle result conditionally too
Previously, we were calling `:unwrap` while trying to increment the
progress bar even if we were not in an interactive environment. This
fixes that.
2024-12-25 15:48:50 +00:00
35fb2df3a4
chore(lib): prepare for v0.1.6 2024-12-25 05:59:33 +00:00
773cc1b2a1
fix(lib): error while attempting to migrate when new dir exists 2024-12-22 15:59:27 +00:00
76e434ec6d
fix(lib): propagate ProgressBar results and handle them 2024-12-22 15:58:52 +00:00
e6e5debcac
chore: update lockfiles 2024-12-22 14:42:22 +00:00
f0524d036d
chore(lib): bump version 2024-12-22 14:35:20 +00:00
4a26699691
chore(pkg): update pesde lockfiles 2024-12-16 19:39:08 +00:00
7bf8063366
feat(lib): make ProgressBar:nextStage return a result 2024-12-16 19:28:28 +00:00
8a074d0406
chore(lib): bump version 2024-12-16 07:32:58 +00:00
e0a9ca9aa4
fix(lib)!: check if existing tool_storage is dir, not file 2024-12-16 07:28:26 +00:00
db91ef8af5
chore(lib): bump version 2024-12-16 06:33:30 +00:00
9a3f3717de
feat(lib): address type related FIXMEs 2024-12-14 06:18:40 +00:00
bb6278407d
feat(lib): use gh CLI to get token and condition bar start
* Looks for `$GITHUB_TOKEN` env var, and if not found, tries to run `gh
  auth token` to get the token from the GitHub CLI.
* Made a conditional `start` method for the bar, which was previously
  missed.
2024-12-14 06:13:17 +00:00
0726169df8
feat(lib): rename tool_storage dir
Tools are now stored in the `~/.pesde/bin/.tool_storage` directory, in
order to prevent naming conflicts with other tool linkers. An old
tool_storage directory gets migrated to the new path if present.
2024-12-13 18:20:29 +00:00
202dc85147
feat(lib): add a touch of color to progress bar
Also moves bar stopping logic for errors into pcall handler.
2024-12-13 18:04:42 +00:00
2f79159f95
fix(lib): progress bar interfering with warns
* Fixed overlapping warns and progress bar.
* Removed unnecessary `resume` and `stop` bar methods.
2024-12-13 17:52:28 +00:00
f377116271
refactor(lib): minor structure improvements for progress bar
* Made bar related conditional operations get constructed by a
  `makeCondBar` which returns a table of functions to conditionally handle
  a progress bar.
* Moved progress bar boolean out of function args for `installTool` into
  global state.
2024-12-13 16:34:36 +00:00
c69a7417a0
feat(lib): include optional progress bar
Includes an optional progress bar which gets enabled when lib is called
using the default convenience `__call` metamethod.
2024-12-13 16:25:42 +00:00
ead60c003e
refactor(lib): use extension pattern for result<->option
Formerly, we used metatables to get custom `Option` and `Result` objects
which were difficult to type properly, leading to a lot of `unknown` and
`any` casts.

This refactor fixes it by making extensions opt-in, where we import the
extension methods separately from the original implementations, thereby
allowing us to not have to typecast things everywhere.
2024-12-13 14:33:05 +00:00
45627ea4a9
feat(lib): only download asset when it is of a valid format
Small optimization to not fetch an asset if its need of a supported
compression format.
2024-12-13 13:51:38 +00:00
1613737c26
chore(toolchainlib): remove token param from README 2024-12-10 22:12:47 +05:30
940ceea50f style: apply stylua formatter 2024-12-09 04:43:15 +00:00
80882fc173 feat(lib): remove reliance on semver parsing
Previously, we assumed that the tools followed semver, and hence parsed
their versions for comparison. Some tools may not follow semver, and we
should not impose such a requirement as a toolchain management library.

Therefore, we now only check if the requested version string matches an
asset version tag. In order to ensure backwards compatibility, we strip
the leading `v` from the version if present.
2024-12-09 03:34:05 +00:00
daimond113
c8488f169f
docs: symlink toolchainlib LICENSE 2024-12-08 18:21:06 +01:00
daimond113
e9c78bd0d5
chore: rename LICENSE.md to LICENSE 2024-12-08 18:10:04 +01:00
21d1b04ad4 chore(toolchainlib): fix grammar mistake in README 2024-12-01 12:19:19 +00:00
e46bb0f3ca feat(lib): make manifest decoding and access type-safe
Includes types to describe the shape of a pesde manifest and its
components.
2024-12-01 12:15:57 +00:00
be9790e590 chore(lib): include description in package manifest 2024-12-01 05:38:40 +00:00
cca939e355 fix(lib): remove duplicate version defaulting code 2024-12-01 05:35:58 +00:00
97cc64bc81 fix(lib): don't panic on bad descriptor for binary 2024-12-01 05:34:29 +00:00
039b4619a4 chore(bins): bump toolchainlib and update luau-lsp 2024-12-01 05:30:59 +00:00
46df227f26 chore(lib): bump version 2024-12-01 05:29:59 +00:00
5b1a25bd53 feat(lib): relocate GithubReleases type and implement custom payload
* Also breaks down `GithubReleases` into array of `GithubRelease` type
* Adds a `Custom` operation type for internal `Github` class, allowing
  user to mention custom request data
2024-11-30 18:29:36 +00:00
0dfb7ecc31 chore(bins): bump blink to 0.15.0-rc.1
Also refreshes lockfile cache for all workspace members.
2024-11-30 05:53:56 +00:00
828339feaa fix(lib): fix exec detection fallthrough
If the executable was invalid, and wasn't PE or ELF, it would fall
through into the Mach-O case, which was a false positive.
2024-11-28 17:48:57 +00:00
40e8cfe71a chore(lib): bump version 2024-11-28 16:37:01 +00:00
e396b070c5 fix(lib): bad chmod mode value
In this previous commit, it was setting mode to base-10 755, which is
equivalent to octal 1363, being an invalid mode.
2024-11-28 16:31:20 +00:00
8cf8d8e916 feat(lib): use different tool_storage structure, chmod on unix
* Fix for tools which don't already provide zips with binaries that have
  their executable bit set, by executing chmod before attempting to run.
* Uses a different tool_storage structure to prevent changing the tool
  name and causing confusion for tools which change their help menu
  binary name based on the current exe name.
2024-11-28 16:08:15 +00:00
17f27a009e chore(lib): fix powered by lune badge 2024-11-26 13:04:01 +05:30
11f7c17944 chore(lib/README): update pesde badge to include version from manifest 2024-11-25 21:32:42 +05:30
0b75114091 chore(lib): include README 2024-11-25 15:25:21 +00:00
cf3bac5d41 revert: Expand-Archive cmdlet displaying prog
Reverts 694430b768.
2024-11-25 12:04:22 +00:00
5ff9e8b7c5 fix(lib): Expand-Archive cmdlet displaying prog 2024-11-25 11:55:47 +00:00
21c4a0b9cf style: apply formatting to all files 2024-11-25 11:47:56 +00:00
ca881272be fix(lib): forward pwsh stdout on windows debug 2024-11-25 11:45:07 +00:00
95afc33630 fix(lib): bad argument to Start-Process cmdlet 2024-11-25 11:43:15 +00:00
3a65776a3c fix(lib): decompression on windows
* Decompression on windows failed since the `Start-Process` cmdlet exited
  immediately after spawning the process. Fixed by including the `-Wait`
  argument.
* We were using `unzip` on all platforms, and it does not exist on
  Windows. Instead, now we use the `Expand-Archive` cmdlet for
  decompression on windows.
2024-11-25 11:24:18 +00:00