Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coderofsalvation/aap
an npm-like, highlevel dependency manager, buildtool and installer using bash+git
https://github.com/coderofsalvation/aap
Last synced: 12 days ago
JSON representation
an npm-like, highlevel dependency manager, buildtool and installer using bash+git
- Host: GitHub
- URL: https://github.com/coderofsalvation/aap
- Owner: coderofsalvation
- Created: 2015-12-04T11:33:27.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-05-28T18:13:57.000Z (over 4 years ago)
- Last Synced: 2024-09-23T09:14:04.403Z (about 2 months ago)
- Language: Shell
- Homepage:
- Size: 34.2 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
In the beginning there was bash..and bash had aap.json
![Build Status](https://travis-ci.org/coderofsalvation/aap.svg?branch=master)
## Getting started
If you're used to `npm` or `composer`, you will feel right at home.
Lets start a project by adding dependencies to it:$ git init
$ aap init
$ aap install ssh+git://[email protected]/username/backend.git --save
$ aap install ssh+git://[email protected]/username/core-api.git --save
$ aap install ssh+git://[email protected]/username/landingpage.git --save
$ aap install ssh+git://[email protected]/username/[email protected]#master --save
$ aap install ssh+git://[email protected]/username/docker.mysql.git --save
$ aap install ssh+git://[email protected]/username/docker.mongodb.git --save
$ aap install npm://[email protected] --save
$ aap install composer://[email protected] --save
$ mkdir python
$ cd python && ../../aap install pip://mypythonpackage --save
Nice! Now aap.json will look like [this](doc/aap.json)Now lets push our `aap.json` buildpack to the repo:
$ git add aap.json && git commit -m "added aap manifest"
$ git push origin masterCongrats! Now with this `aap.json`, other devs can easily install dependencies like so:
$ aap install
installing 'backend'
├─ $ git clone ssh+git://[email protected]/username/backend.git
├─ Cloning into 'backend'...
├─
├─ ʕ•x•ʔ
├─ +-+-+-+ Your personal nested build & dependency monkey
├─ |a|a|p| [https://github.com/coderofsalvation/aap]
├─ +-+-+-+
├─
├─
├─ installing 'backend'
├─ ├─ $ git clone https://[email protected]/username/backend-html-templates
├─ ├─ Cloning into 'backend-html-templates'...
├─
...and so on..
> NOTE recursive installation is supported when `aap.json` occurs in gitrepo-dependencies as well.
## Usecases
The usecases can range from application builds from a repository, till selfcontained installers, till
[deploying docker clouds](doc/cloud.md):## Scripts, triggers'n' hooks
See [here how to trigger scripts](doc/scripts.md) using the `aap run `, to build and configure stuff from one central place.
Perfect for monkeypatching your app before turning on the engine, compiling sources etc.## Installation
npm install aap.bash
or
wget "https://raw.githubusercontent.com/coderofsalvation/aap/master/aap" -O aap
chmod 755 aap## Why
Now you can easily manage dependencies of gitrepos, npm/composer modules and dockerrepos.
All combined in one slim repo.Basically `aap init` generates `aap.json` like [this](doc/aap.json), which allows you to run:
$ aap install
Get any system to build a project from multiple remote sources.
> Only requirements: git + bash
## Options
$ aap
Usage: aap [options]
aap.json Buildpacks for the web.
Easily manage dependencies of gitrepos, npm/composer modules and dockerrepos.
Combine a composable cloud in one slim repo.Commands:
aap init [name] [options] ┆ generates aap manifest, options:
┆ -f = force, overwrites jsonaap install [url] [..] [options] ┆ no arguments installs all dependencies in aap.json
┆ -f = force, overwrites existing dependencies
┆ --save = save dependency to "dependencies" in aap.json
┆ --save-dev = save dependency to "devDependencies"
┆ --dev = install from "devDependencies"
┆
┆ valid urls are:
┆ [email protected]:user/repo.git
┆ ssh+git://[email protected]/user/repo.git
┆ ssh+git://github.com/username/package.git
┆ ssh+git://github.com/username/package.git#master
┆ ssh+git://github.com/username/package.git#master#commit
┆ ssh+git://github.com/username/package.git#[email protected]
┆ npm://browserify
┆ composer://user/packagename
aap run ┆ runs script defined in aap.json
## Other possible goals* [run/deploy a cloud](doc/cloud.md) using multiple Docker cloudservices in one repo using [crowdr](https://github.com/polonskiy/crowdr)
* depency management: wrap several repositories and modules in one repository
* use in and outside dockers
* install package managers in environments where they're not installed
* avoid git submodules (gets laborous pretty easily)
* readability: deploy and dependency info confined in one jsonfile (aap.json) to minimize shellscriptism## Todo
* aap update cmd
* rewrite in [powscript](http://github.com/coderofsalvation/powscript)
* git commits and tags
* npm versions
* aap bake aap.json > myinstaller
* global commands: source ~/.aap*.json