Mashup allows you to blend two or more git repositories into one project.
Install this globally in order to access the mashup
command anywhere on your system.
npm install -g mashup
Getting started with mashup
is pretty straight forward. There is one core command you should be aware of mashup generate
or simply mashup
will guide you through a series of prompts allowing you to pull multiple git repos and combine them into one project.
Running mashup generate
or mashup
will present you with the following prompts:
- Enter a git url (http or ssh)
- Enter a destination folder
- Enter files to be cleaned out after cloning (follows mini-match standards), comma delimited
- Would you like to clone another? (repeat step 1)
- Once you respond 'no' to prompt you will be asked for a remote git url to push your new project to. This step is optional.
A registry is beneficial when you repeatedly need to blend the same repos or would like to automate the creation of projects. For instance, one repo can be the HTML 5 Boilerplate while the other may contain your grunt configuration. A registry is just a json file uploaded to a server which follows the format below:
{
"template1":{
"source":[
{
"git":"https://github.com/h5bp/html5-boilerplate.git",
"dest":"build",
"clean":{
"files":["doc"]
}
}
]
},
"template2":{
"source":[
...
}
Once a registry has been added to mashup
projects can be generated from the registry using the following command mashup generate [registry:template]
. Power users can pass in the remote git with mashup generate [registry:template] --remote [git]
or skip the remote git prompt entirely with mashup generate [registry:template] --no-remote
.
- Git urls can be either http or ssh
- If destination folder does not exist it will be created
- Repos are cloned into a temporary directory and then moved to their final destination
- Any files with the same name being moved to the same destination folder will be overridden
- In order to clone into the current working directory use a '.' as the destination
By running mashup register
you will be guided through a series of prompts allowing you to add a new registry. Power users can bypass the prompts with mashup register [name] [jsonURL]
.
Generate with prompts
mashup
mashup generate
mashup -g
Generate from registry with remote git url prompt
mashup generate registry:template1
mashup -g registry:template1
Generate from registry skipping remote git url prompt
mashup generate registry:template1 --no-remote
Generate from registry passing in a remote git url
mashup generate registry:template1 --remote https://github.com/user/new-project
Add new registry with prompts
mashup register
mashup -r
Add new registry bypassing prompts
mashup register myregistry http://mydomain/path/registry.json
mashup -r myregistry http://mydomain/path/registry.json
List available registries
mashup list
mashup -l
List available templates within a registry
mashup list myregistry
mashup -l myregistry