commit 9e989c22ea5652b0dae27016be89450dbe250999 Author: Maciej Krzyżanowski Date: Tue Feb 18 23:47:30 2025 +0100 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..c8e1fdb --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +![PurePkg Logo](pure-pkg-logo.png) + +# PurePkg + +Simple C package manager. + +## Planned features + +The package manager itself should be a simple bash script and it will use +a few dependencies like `jq` to make it easier to implement. + +- fetching dependencies +- adding new dependencies +- removing dependencies +- updating dependencies = remove + add + fetch + +The package manager will guarantee transaction nature of these operations. + +### Files structure + +The idea is for the package manager to use the following files: + +- `purepkg-deps.json` -- user-defined dependencies, may be added by hand + or by using ./purepkg.sh add command +- `purepkg-lock.json` -- stores information about installed packages, + their versions, names, descriptions, licenses +- `purepkg-this.json` -- contains information about the current repository + being a package. It defines name, description, license and a list of + paths to files, which should be fetched by someone adding this as a + dependency +- `.purepkg/` -- directory for storing intermediary results of operations, + before everything succeeds no other file is touched by this manager +- `purepkgs/` -- directory where packages files are placed. Currently the + idea is that the user will use them from this place to include or link + -- which may involve creating symlinks to the files to place them in + project-specific directories. It is some plan for future to add + symlinks creation automatically, but this needs to be revised diff --git a/pure-pkg-logo.png b/pure-pkg-logo.png new file mode 100644 index 0000000..9515f2e Binary files /dev/null and b/pure-pkg-logo.png differ