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
$ bash -c "$(curl -L https://raw.githubusercontent.com/pior/dad/master/install.sh)"
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
★ 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 $ go install
Release
$ script/release v1.0.0
The big idea:
- Push the release code to the
master branch
- Tag the commit:
git tag v1.2.3 && git push --tags
- Admire the release on Github
License
MIT