[オレオレ]macbook開発環境のrestoreについて時短を目指してみた

## モチベーション
restoreすると新しいパンツをはいたばかりの正月元旦の朝のように爽やかな気分になれます。
macbookを購入してから1ヶ月経過したが、環境再構築のため、すでに複数回リストアしていますので手順を明記しておきます。
[1時間半程度で終わる人](http://saboyutaka.hatenablog.com/entry/2018/08/23/023925)もいらっしゃるみたいなので頑張ってみます。
※個人メモ的要素が強いです。

## TL;DR
- 片手間で2時間半くらい
- タスクは下記
    - macosのresotre
    - Homebrewインストール
    - システム環境設定変更
    - 必須アプリケーションインストール
    - 開発用コンテナのデプロイ

## 環境
macOS High Sierra 10.13.6
macOS Mojave 10.14.1
無線LAN接続有り
※可能な限り無線接続が良い状況で実施します。

## 計測環境
resotre作業には注力せず、他のPCで作業をしながらresotre作業を進めるレベル

## 手順
### macbookのリストア～実測：約25分～
macbookをキレイキレイします。

- HDDのフォーマット

command + option + R → 再起動します。
その後は、ディスク ユーティリティからフォーマットで消去で完了。

- OS Xインストール
OS Xを再インストールからインストールします。
※ここが結構時間がかかります。

- 初期セットアップ
画面通りなので割愛します。

### Homebrewインストール～実測：約10分～
- Homebrew/gitインストール

```
$ xcode-select --install && /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install git
```

### 必須アプリケーションのインストール～実測：約20分～
- [自分のGitHub](https://github.com/sugeeeeeeeeee/.restorefiles.git)からrestorefileをcloneし、make install

```
$ git clone https://github.com/sugeeeeeeeeee/.restorefiles.git
$ cd .resotrefile && make install
```

- make installでやっていること。
    - ホスト名変更
    - google drive cli Clientである[gdrive](https://github.com/prasmussen/gdrive)をインストール
    - [GoogleDrive](https://drive.google.com/)よりBrewfileをダウンロードし、一括インストール
    - dotfilesのコピー
    - iTerm2とvimカラースキーマのダウンロード
    - powerline-go用のフォントダウンロード
    - [GoogleDrive](https://drive.google.com/)より.sshフォルダをダウンロードし、権限変更

### システム環境設定変更～実測：約15分～
システム環境設定で変更する項目について明記します。
記載のない箇所はデフォルトです。

- Dock
自動で隠す

- 時計
秒と日付を表示させる

- マウス&キーボード
    - マウス
        - 軌跡は最速
    - キーボード
        - キーリピートとリピート入力認識までの時間は最速
        - 入力ソースは[GoogleIME](https://www.google.co.jp/ime/)のみにする
        - F1、F2などのすべてのキーを標準のファンクションキーとして使用
        - ユーザー辞書から自動変換系のチェック外し
- 省エネルギー
    - ディスプレイオフ時間は1時間
    - バッテリー電源使用時はディスプレイを少し暗くするのチェックを外す
- サウンド
    - 消音にする。
- Finder設定変更
    - Finder → 表示から、タブとパスとステータスバーを表示にする。
    - Finder → 環境設定から
    - デスクトップ
        - アイコンは何も表示させない
        - 新規FInderウィンドウで次を表示
            - ホームディレクトリ
    - サイドバー
        - ホームディレクトリを追加する
    - 詳細
        - すべての拡張子を表示する
    - スクロールバー
        - 一般 → 常に表示にする

- iTerm2設定変更j
    - 画面透過設定
    - フォントをデプロイ。iTermのPreferenceからpowerlineと記述がついたフォントを選択
        - ※私は「Meslo LG S DZ Regular for powerline」を選びました
    - make installで、カラースキーマのicebergが~/scheme上にできているのでimportして選択

- デフォルトshell変更
    - /etc/shellsのzshのパスを/usr/local/binに変える
    - デフォルトシェルをzshに変更
```
$ chsh -s /usr/local/zsh
```

### 開発用コンテナのデプロイ～実測：約30分～
- コンテナ用フォルダ作成

```
$ mkdir -p ~/.container/_localdev && cd $_
```

- gcrを利用するために、認証を行う。

```
$ gcloud auth configure-docker
$ gcloud auth login
$ gcloud config set project [プロジェクト名]
```

- 開発環境用のdocker-composeファイルを作成

```
version: "3"
services:
  "_localdev":
    image: "[gcr images]"
    container_name: "localdev"
    hostname: "localdev"
    ports:
      - "12345:12345"
    volumes:
      - ./dev:/home/sugeeeeeeeeee/dev
    tty: true
    privileged: true
    command: /sbin/init
```

## まとめ
更新時の実測値を記載してみました。開発環境のデプロイまで約2時間強。
記述がいろいろ間違っていたため、feasibilityを確認していたのでちょっと時間を要しています。
restoreに専念していたらいろいろな方面から何か言われそうなのでこんな感じかと。
下記Next Actionについて、確認できたら更新します。
参考いただけたら嬉しいです。

[追記]
Next Action1の自動化を少し進めました。
タスクランナーとしてMakefileを用意し、setup.shをキックすることで約1時間ほど時間短縮できました。:relaxed:

## Next Action 1
### もっと自動化するためには
- 理想は昼飯食べている間にrestore完了するレベル
- よく考えたらdotfilesはMakeで修正

## Next Action 2
### もっと速くリストアするためには
- システム環境設定をインポートする手段を調べる
- もっと速い無線環境を整える 

## 参照元
https://www.pc-koubou.jp/kaitori/re/macpri.html
http://saboyutaka.hatenablog.com/entry/2018/08/23/023925
https://seishin55.hatenablog.com/entry/2016/12/10/145329
https://qiita.com/HOKARI_Yutaka/items/8047e5ec763adcac2563

## 更新履歴
2018/9/26  章構成変更
2018/11/13 タスクランナーに任せることで自動化