Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yanamura/captain

makes easy to manage git hooks for written in Swift products
https://github.com/yanamura/captain

git git-hook hooks precommit precommit-hooks swift swift-package-manager

Last synced: 2 months ago
JSON representation

makes easy to manage git hooks for written in Swift products

Awesome Lists containing this project

README

        

# Captain



travis


Swift 5.1

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 -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 -c release captain install
```

#### Using [Mint](https://github.com/yonaskolb/Mint)
```
$ mint run yanamura/Captain captain install
```

### Unset Git Hooks
```
$ captain uninstall
```