# Captain <p> <a href="https://travis-ci.org/yanamura/Captain"> <img src="https://travis-ci.org/yanamura/Captain.svg?branch=master" alt="travis"> </a> <a href="https://swift.org"> <img src="http://img.shields.io/badge/swift-5.1-brightgreen.svg" alt="Swift 5.1"> </a> </p> Captain makes easy to manage git hooks ## Install ### Using Mint if you want to install globally, use [Mint](https://github.com/yonaskolb/Mint) ``` $ mint install yanamura/Captain ``` ### Using SwiftPackageManager ``` /// Package.swift dependencies: [ ... .package(url: "https://github.com/yanamura/Captain"), ] ``` ``` $ swift build --package-path <path to Package.swift> -c release ``` executable binary will be created to ./build/release/captain ## Usage ### Configuration create `.captain` onproject root directory. ``` /ProjectDir /.git .gitignore .captain ``` .git directory and .captain file should be in same location. #### .captain ``` { "pre-commit": "swift-format -r Sources -i" } ``` or ``` { "pre-commit": [ "swift-format -r Sources -i", "git add ." ] } ``` #### supported hooks - applypatch-msg - pre-applypatch - post-applypatch - pre-commit - prepare-commit-msg - commit-msg - post-commit - pre-rebase - post-checkout - post-merge - pre-push - pre-receive - update - post-receive - post-update - push-to-checkout - pre-auto-gc - post-rewrite - sendemail-validat ### Set Git Hooks ``` $ captain install ``` ### Using Swift Package Manager ``` /// Package.swift dependencies: [ ... .package(url: "https://github.com/yanamura/Captain"), ] ``` ``` $ swift run --package-path <path to Package.swift> -c release captain install ``` #### Using [Mint](https://github.com/yonaskolb/Mint) ``` $ mint run yanamura/Captain captain install ``` ### Unset Git Hooks ``` $ captain uninstall ```