it is a cross-distro package manager that uses shell scripts to install packages. you see, packages are complicated, and most people don't make package their software anyways. then we said,
what if we made packaging fun and easy so it's more accessible and developer-friendly?
and that started shpkg/shpm's journey.
24.11.2024 (us 11.24.2024) - shpkg/shpm was created
shpkg first searches for the desired package name ending with .sh in the https://github.com/shpkg/repo
git repository. if it finds a match, it curl-bashes (to be exact, requests.get()) the script. else, it fails.
well, let's see...
- both software installed and the installer script MUST be open-source, accessible via a git/mercurial/subversion repository.
- both software installed and the installer script MUST NOT contain any type of malware
- the so-called "installer" MUST install ONLY the software and ITS DEPENDENCIES. bundleware IS NOT allowed.
- the installer MUST actually INSTALL the package it is connected to. EMPTY shell scripts are NOT allowed.
- the installer should add
# shpkg-name! package-name
# shpkg-desc! package-description
# shpkg-by! package-author
at the top of the file, AFTER the shebang line.
- fork the git repository
https://github.com/shpkg/repo
. - add your install script to /install. for example, if i wanted to add betterfetch, i would create a file called
betterfetch.sh
. make sure that you added the shpkg properties after the shebang line. - add your uninstall script to /uninstall. for example, if i wanted to add betterfetch, i would create a file called
betterfetch.sh
. make sure that you added the shpkg properties after the shebang line. - open a pull request. do not forget to answer the questions in the pull request template.
- wait! congrats, you just submitted your first ever sh package!
shpm was the codename of the project. but it sounds cool, so we use both.