Author: Josh Moore <email@example.com>
Date: Fri, 17 Jan 2020 17:15:08 -0500
1 file changed, 14 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
@@ -3,6 +3,15 @@ The Squid Package Manager is a utility for easily managing local copies of git r
This is intended primarily to be a tool for personal use, but I will accept pull requests and add packages to this repository if they are genuinely libre software.
+### Why squidpm?
+squidpm is intended to be a convenient way to manage local installations of remote git repositories. Instead of needing to read through a repo's documentation for the specific list of commands every time you want to update/install/uninstall/etc the software, you can perform operations like these with a single call to squidpm.
+Once you have installed a package using squidpm, you can then go into `repos/<package>` for that package and perform any actions you would be able to perform on a normal git repo, such as checking out other branches, modifying config files, etc., and then running `squidpm update <package>` to have those changes take effect.
+Additionally, if you are a maintainer of a project with a public git repo, you could easily add your project to squidpm by creating a package script and submitting it here via pull request. Then the latest versions of your software will be available on squidpm as soon as you push changes to your own repo as you normally would, with no further action required by you. All users have to do is run `squidpm update <package>` to catch themselves up with your repo.
+Lastly, squidpm will only support free software forever! If you install a package using squidpm, you are installing software that has been specifically curated and verified to respect your freedoms as a user of software.
To install squidpm for the first time, run these commands:
@@ -16,3 +25,8 @@ This will create all the symlinks necessary to run squidpm. After that, you will
Use the command `squidpm help` or see `docs/operations.txt` to see a list of supported operations.
The `all` package is a special target that lets you perform the selected operation on all available packages. There is no confirmation, and squidpm really will update/uninstall all installed packages or install all packages in the squidpm repository, so make sure you really want to do what you're doing!
+The best way to contribute is to create package scripts for your own software (or software you use) and submit them to squidpm via pull request. See the `packages/` directory for examples of how to create your own package scripts. All you need to do is inherit from the 'base_package' script and provide implementations for each function. It's very simple and straightforward, and generally involves verbatim copying of commands from the repository's installation instructions.
+Contributions are also welcome in the form of new issues, bugfixes, and documentation.