The Anarchy Tools Package Manager.
To build atpm "from scratch", simply ./bootstrap/build.sh.
Then you can check the program was built successfully:
$ ./atpm --help
atpm - Anarchy Tools Package Manager 1.0.0-GM1
https://github.com/AnarchyTools
© 2016 Anarchy Tools Contributors.
Usage: atpm [command]
info
show information for all package dependencies
fetch
fetch new packages, does not touch already fetched packages
update
update already fetched packages (if they are not pinned)
pin <package-name>
pin current package status of <package-name> and record in lock file
unpin <package-name>
unpin status of <package-name>
override <package-name> <new-url>
override git url of <package-name> to <new-url>
restore <package-name>
remove git url override of <package-name>
atpm info just dumps information about dependencies of a package (mainly the git URLs)
atpm fetch downloads all external dependencies into external/<pkgname>, it does not touch already downloaded dependencies
atpm update updates all external dependencies in external/, it does not download new or missing dependencies
atpm pin <packagename> pin a package to a defined git commit id
atpm unpin <packagename> unpin a commit id for a package
atpm override <packagename> <GIT-URL> override the git repo URL for a package
atpm restore <packagename> remove URL override for a package
To configure a dependency in a build.atpkg file add the following statements to the top level (just after :name):
:external-packages [
{
:url "https://github.com/AnarchyTools/atpkg.git"
:version [ "1.0.0" ]
}
]-
:urlis required and a valid URL to a git repository -
:branchis optional and defines which branch to check out -
:tagis optional and defines which git tag to check out -
:commitdefines a commit id -
:versiondefines a version, use a vector like["<1.3" ">=1.2"]
You need one of :branch, :tag, :commit or :version
All dependencies are handled as if you issued a :import ["external/<pkgname>/build.atpkg"] statement in the build file.
Example:
(package
:name "test"
:external-packages [
{
:url "https://github.com/AnarchyTools/atpkg.git"
:version [ "1.0.0" ]
}
]
:tasks {
:default {
:tool "atllbuild"
:source ["src/**.swift"]
:name "test"
:output-type "executable"
:link-with ["atpkg.a"]
:dependencies ["atpkg.atpkg"]
}
}
)