Dad 👴

What is this?
Dad is an open-source implementation of an amazing internal tool developed at
Shopify called "Dev".
The first goal of this tools is to automate the setup tasks required to work on a project.
With Dad, pushing a change on a project you never touched look like this:
dad clone Shopify/sarama
dad up
- Commit your changes
dad test
git push
Scope and Status
Dad will start as a highly compatible implementation of Dev (when possible).
Dad is currently a working prototype. Core features are being implemented.
Current limitations:
- Github is the only hosting platform implemented
- Bash is the only shell supported
Install
Binaries releases will be available from Github soon.
In the mean time, you will need to compile/install the Go binary yourself:
★ Clone the repository:
~ $ mkdir -p ~/src/github.com/pior
~ $ cd ~/src/github.com/pior
~/src/github.com/pior $ git clone git@github.com:pior/dad.git
★ Fetch the dependencies (in vendor)
~/src/github.com/pior $ dep ensure
★ Install the go executable somewhere in your PATH:
~/src/github.com/pior $ make install
Setup
★ Install the shell integration (in ~/.bash_profile):
eval "$(dad --shell-init --with-completion)"
A safer version:
type dad > /dev/null 2> /dev/null && eval "$(dad --shell-init --with-completion)"
Usage
★ Add a dev.yml file in your project:
up:
- custom:
met?: brew info upx 2> /dev/null > /dev/null
meet: brew install upx
commands:
test:
run:
make test
lint:
run: make lint
See Dad own dev.yml
$ dad
Usage:
dad [flags]
dad [command]
Available Commands:
cd Jump to a local project
clone Clone a project from github.com
help Help about any command
lint Custom
test Custom: Run tests
up Ensure the project is up and running
Flags:
-h, --help help for dad
--shell-init Shell initialization
--with-completion Enable completion during initialization
Use "dad [command] --help" for more information about a command.
Development
Release
- Push the release code to the
master branch
- Tag the commit:
git tag v1.2.3 && git push --tags
- Admire the release on Github