![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