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.
Generating on the fly
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.
Generating from a registry
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:
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
Adding a registry
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