Packman is a package manager for ComputerCraft. It allows you to easily add and remove software from computers, and includes dependency resolution so you won't have to run around tracking down the various APIs that shiny new program needs. It has support for multiple repositories, so program authors can get their own package lists added in and keep their software up to date. Packman can update your programs for you if there are new versions available. Packman can download from a variety of sources, including pastebin, github and bitbucket. Packman includes support for running setup and cleanup scripts when installing/removing packages.

You can grab packman via a small script I've put on pastebin:

pastebin run 4zyreNZy

This script will automatically download packman, then have it fetch the other files it needs and finally install a small package that makes packman easier to use (as it installs in /usr/bin, this initially installed package adds /usr/bin to the shell path on startup).

Many of my ComputerCraft programs are easily installed through packman, such as LyqydOS, LyqydNet, Touchpoint, and nsh. You can also find neat things like Gopher's minesweeper game among the available packages!

If you want to get your packages listed, simply create a valid package list at a static URL (such as a pastebin paste you can edit, or a file in a github repo) and send a pull request adding your pack's URL with an appropriate name to the repolist on github.

I feel like I should note that the version of minesweeper currently on packman is the version that only runs in LyqydOS; the version for CraftOS is not, and can be found here, though I may look into combining them into a single program that switches modes at some point...

Yeah, you're free to submit a PR adding any feature you think would be valuable. A PR adding a grin download type correctly would very likely be accepted!

Custom repositories could be added by users simply by placing a valid repo file in /etc/repositories. As long as the custom repo wasn't named the same as any of the included ones, it wouldn't be blasted away. I haven't put too much thought into allowing custom URLs to be added to the repo list, so that they would be updated automatically, but that may be a valuable feature.

Yeah, you're free to submit a PR adding any feature you think would be valuable. A PR adding a grin download type correctly would very likely be accepted!

Custom repositories could be added by users simply by placing a valid repo file in /etc/repositories. As long as the custom repo wasn't named the same as any of the included ones, it wouldn't be blasted away. I haven't put too much thought into allowing custom URLs to be added to the repo list, so that they would be updated automatically, but that may be a valuable feature.

Thanks for the interest!

Great! This whole project is very promising. Already got a fork going to add Grin in =P

A package is a file or collection of files, which can include anything that ComputerCraft can successfully download. For most downloading methods (pastebin, raw, github, bitbucket), this means plain ASCII files. The grin download method can also get binary files, as it downloads a base64'd file prepared beforehand. The package's files are then placed according to the specifications of the package and an installer script is run (if specified).

The repo list is a list of files containing package lists. This is to allow package creators greater control over their packages and their update schedules, so that they don't have to submit a pull request to the main package list in order to update their software.

A package is a file or collection of files, which can include anything that ComputerCraft can successfully download. For most downloading methods (pastebin, raw, github, bitbucket), this means plain ASCII files. The grin download method can also get binary files, as it downloads a base64'd file prepared beforehand. The package's files are then placed according to the specifications of the package and an installer script is run (if specified).

The repo list is a list of files containing package lists. This is to allow package creators greater control over their packages and their update schedules, so that they don't have to submit a pull request to the main package list in order to update their software.

Packman is a package manager for ComputerCraft. It allows you to easily add and remove software from computers, and includes dependency resolution so you won't have to run around tracking down the various APIs that shiny new program needs. It has support for multiple repositories, so program authors can get their own package lists added in and keep their software up to date. Packman can update your programs for you if there are new versions available. Packman can download from a variety of sources, including pastebin, github and bitbucket. Packman includes support for running setup and cleanup scripts when installing/removing packages.

You can grab packman via a small script I've put on pastebin:

pastebin run 4zyreNZy

This script will automatically download packman, then have it fetch the other files it needs and finally install a small package that makes packman easier to use (as it installs in /usr/bin, this initially installed package adds /usr/bin to the shell path on startup).

Many of my ComputerCraft programs are easily installed through packman, such as LyqydOS, LyqydNet, Touchpoint, and nsh. You can also find neat things like Gopher's minesweeper game among the available packages!

If you want to get your packages listed, simply create a valid package list at a static URL (such as a pastebin paste you can edit, or a file in a github repo) and send a pull request adding your pack's URL with an appropriate name to the repolist on github.

That'd suggest that the installer was unable to connect to github's servers at all. You still can't get it to run after waiting a few minutes, I'd recommend checking ComputerCraft's http whitelist settings.

That'd suggest that the installer was unable to connect to github's servers at all. You still can't get it to run after waiting a few minutes, I'd recommend checking ComputerCraft's http whitelist settings.

I've pushed an update to this that adds incremental updates for the github and bitbucket fetching methods. If you update packages that are fetched those two ways, it will compare the sha hash of the file provided by the host to the last known version of the file and only update files that appear to have changed.

I've also made a major behind-the-scenes change to all of the download methods (except grin) to use a transaction-based system for changing files. They will now download everything, and then create folders and write files if everything was successfully fetched. This helps prevent out of sync state between the files on the system and the database of installed packages/files.

I'm excited to announce that nitrogenfingers has added several of his programs as packages for packman, so you can now fetch some of his awesome stuff through Packman. A quick packman fetch search nitro should show you all of the new packages!