tooling/toolchainlib
Erica Marigold 65cc1720ac
feat: infer command line interactivity from the process context (#8)
* chore: update lockfiles

* feat: guess whether command was invoked non-interactively

Previously, it was made possible to control the interactivity status of the
progress bar by setting `_G.interactive`. However, this was not
automatically inferred from the context the process was started from,
and was expected to be manually set by the library invoker.

Non-interactivity status is now inferred automatically based on the
context the command was called from.

* feat: introduce `PESDE_TOOLING_FORCE_INTERACTIVE` override

This environment variable allows overriding the result of the
interactivity status guess by setting it to any non-empty value.

* fix: accidentally forcing users to set env var to get noninteractivity

* style: apply `stylua` formatter
2025-04-19 09:36:12 +01:00
..
src feat: infer command line interactivity from the process context (#8) 2025-04-19 09:36:12 +01:00
LICENSE docs: symlink toolchainlib LICENSE 2024-12-08 18:21:06 +01:00
pesde.lock chore: update dependencies & lockfiles 2025-04-09 08:22:37 +01:00
pesde.toml chore(lib): prepare for v0.1.12 2025-02-12 16:33:42 +00:00
README.md chore(toolchainlib): remove token param from README 2024-12-10 22:12:47 +05:30

pesde/toolchainlib

Discord Pesde Lune

A Luau library implementing toolchain management for Luau packages. This package is a dependency of all of pesde's tooling packages.

Caution

Although it is possible to use this package directly, it is not recommended as it has not been thoroughly tested for any tooling other than those pesde officially repackages.

Hwat? How?

pesde/toolchainlib uses a logic inspired by Rokit to discover compatible artifacts on GitHub releases, downloads them locally, and executes them. Rokit's discovery logic is dynamic, works for a majority of tools. The only requirement is that the tool has to have a GitHub release. See this comment for more details on the discovery logic.

When consumed from within a binary pesde package, pesde creates global linker scripts within ~/.pesde/bin which can be invoked when the package is installed in the workspace. These scripts can be called from the command line like regular commands, enabling you to run your favorite tooling, while having them be managed entirely by pesde.

License

This project is licensed under the MIT license.