38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown

|
|
|
|
# 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
|