https://github.com/pkgxdev/pkgo
Package…GO!
https://github.com/pkgxdev/pkgo
Last synced: 25 days ago
JSON representation
Package…GO!
- Host: GitHub
- URL: https://github.com/pkgxdev/pkgo
- Owner: pkgxdev
- Created: 2025-01-27T02:39:58.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-04T15:34:13.000Z (11 months ago)
- Last Synced: 2025-06-05T14:08:05.016Z (9 months ago)
- Language: TypeScript
- Homepage:
- Size: 12.7 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Package…GO!
Some Open Source is not designed to be packaged, but is still great.
`pkgo` (Package…GO!) is a “setup” tool for the ”unpackageable”. Contributors
provide build and run instructions for projects. Programs are run inside a
sandbox (restricting writes to the cloned directory, caches and temp
directories) for your sanity and security.
## Quick Start
```sh
curl -O https://raw.githubusercontent.com/pkgxdev/pkgo/refs/heads/main/entrypoint.ts
sudo install -m 755 entrypoint.ts /usr/local/bin/pkgo
```
> [!IMPORTANT]
>
> [`pkgx`] is a required dependency:
>
> ```sh
> brew install pkgx || curl https://pkgx.sh | sh
> ```
> [!NOTE]
> We support macOS, Linux and Windows. Not all platforms have been tested.
> Bug reports welcome!
> [!NOTE]
> Installing on Windows is not documented. Downloaded `entrypoint.*` and
> execute the `.cmd` file.
## Usage
```sh
$ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
# ^^ clone a supported project
$ cd stable-diffusion-webui
# ^^ step into the clone
$ pkgo
# ^^ `pkgo` does the setup and executes it
```
To list all supported projects type `pkgo` in a non project directory.
> [!NOTE]
>
> ### Why `pkgo` Works This Way
>
> The projects we support are designed to be cloned, managed and
> modified in-place by the user so packaging them in a more typical sense
> would make them simpler for getting started but more tedious to use.
>
> `pkgo` makes the getting started step simple removing the worst of the
> tedium.
>
> We still make you clone it because its not our job to manage where the
> project goes or how it gets there.
## Contributing
Fork this repo and add a new script to `manifests`. Use `pkgx` to ensure your
script and the program you will run has all the stuff it needs.
See the scripts we have already written for examples.
> [!IMPORTANT]
> You need to run the `entrypoint.ts` script from your clone rather than
> `pkgo` from your `PATH` to use your manifests!
- Beware the sandbox! If your program needs write access outside the sandbox
or access to other resources you will need to add exceptions to the script’s
YAML front matter.
- We pass all command line arguments to you, use them as you see fit and pass
what you don’t consume through to the program you have packaged.
- Don’t use `bash`! Since this means straight up you won’t support Windows.
Probably write the script in the language of the project you are supporting.
[`pkgx`]: https://pkgx.sh