pure-pkg/README.md

1.4 KiB

PurePkg Logo

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