Swift Package Manager （Swift 3.0-dev）を使って "README Generator" を作りました

GitHub に [**tryswift**](https://github.com/tryswift) の Team があるのですが、そこに [_**tryswiftdev**_](https://github.com/tryswift/tryswiftdev) という名前の **コマンドラインツール** を作りました。
いくつか作っている機能のうち、_**[README Generator](https://github.com/tryswift/tryswiftdev/blob/master/Documentation/ReadmeGenerator.md)**_ を紹介します。

# なにこれ？

### _**新しいプロジェクトの README.md を簡単に作成します。**_

1. _**既存の README.md を複製します。**_
2. _**README.md の文字列（たとえばタイトル）を一括変換します。**_

![ReadmeGenerator.gif](https://qiita-image-store.s3.amazonaws.com/0/105213/8529adf7-eb78-24ba-c672-d1fb6346e931.gif)

# 使い方

### 0. 事前準備

新しいプロジェクトのディレクトリを作成してください。（例: `DragonBall`）

```bash
$ mkdir DragonBall
```

```
HomeDirectory
├── Pokemon
│   └── README.md (Pokemon)
└── DragonBall ✨
```

### 1. README.md を複製

まず、既存の `Pokemon` プロジェクトから `README.md` を複製します。

```bash
$ tryswiftdev -d ./Pokemon ./DragonBall
```

```
HomeDirectory
├── Pokemon
│   └── README.md (Pokemon)
└── DragonBall
    └── README.md (Pokemon) ✨
```

### 2. README.md 内の文字列を一括変換

次に、複製した README.md 内の文字列を一括変換します。
（例: `Pokemon` → `DragonBall`）

```bash
$ cd DragonBall
$ tryswiftdev -r Pokemon DragonBall
```

```
HomeDirectory
├── Pokemon
│   └── README.md (Pokemon)
└── DragonBall
    └── README.md (DragonBall) ✨
```

### 結果

```diff
1c1
- # Pokemon
+ # DragonBall
3c3
- __Pokemon__ is a library written in Swift.
+ __DragonBall__ is a library written in Swift.
9c9
- 1. Create a [Cartfile](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfile), and add `github "JPMartha/Pokemon" ~> 1.0.0`.
+ 1. Create a [Cartfile](https://github.com/Carthage/Carthage/blob/master/Documentation/Artifacts.md#cartfile), and add `github "JPMartha/DragonBall" ~> 1.0.0`.
11c11
- 3. On your application targets’ “Build Phases” settings tab, in the “Link Binary With Libraries” section, click the “+” icon and add `Pokemon.framework` from the Carthage/Build folder on disk.
+ 3. On your application targets’ “Build Phases” settings tab, in the “Link Binary With Libraries” section, click the “+” icon and add `DragonBall.framework` from the Carthage/Build folder on disk.
16c16
-   and add the "Input Files" to Pokemon.framework:
+   and add the "Input Files" to DragonBall.framework:
18c18
-   $(SRCROOT)/Carthage/Build/iOS/Pokemon.framework
+   $(SRCROOT)/Carthage/Build/iOS/DragonBall.framework
29c29
-   pod 'Pokemon', '~> 1.0.0'
+   pod 'DragonBall', '~> 1.0.0'
42c42
- __Pokemon__ is released under the [MIT License](LICENSE).
+ __DragonBall__ is released under the [MIT License](LICENSE).
```

# 動作環境

- Swift 3.0-dev（[Development Snapshots](https://swift.org/download/#snapshots)）
- OS X

# なんで今こんなん作ったん？

Swift 3.0 で導入予定の [__Swift Package Manager__](https://github.com/apple/swift-package-manager) に質問や Pull request を送っているうちに自分でもコマンドラインツールを作ってみたくなりました。

既存のコマンドラインツールは [Commandant](https://github.com/Carthage/Commandant) というライブラリを使っているものが多いですがこのツールはそれを使っていません。
また Xcode プロジェクト（`.xcodeproj`）もありません。

今のところシェルスクリプトのほうが簡単にできそうな内容ですが、Swift でやることによってなにかおもしろいことにつながらないかと考えながら楽しんでやっています。

そうやって作ったツールがどなたかのお役に立てればうれしいので公開しました。

## おまけ

ご存知の方が多いと思いますが、Swift.org のブログに [__Swift 3.0 Release Process__](https://swift.org/blog/swift-3-0-release-process/) が公開されたので載せておきます。