読者です 読者をやめる 読者になる 読者になる

TimeCapsule💊

やったこと,やること,やってみたいこと

dotfilesのセットアップスクリプトを改良した

少し前まではシンボリックリンクの作成しかしてくれないセットアップする気のないsetup.shでした。

しかしそれでは、「OSのクリーンインストール」、「PCの買い替え」などで環境の再構築をしなければならない時、非常に時間が掛かってしまいますし、「前の環境と全然違う。。。」といった状況に陥ってしまいます。

なので、自動化出来そうな所は自動化してみよう!! ということで、セットアップスクリプトの改良に没頭しました。

デモ

f:id:n2kia4:20170319130924g:plain

リポジトリ

github.com

実行方法

よく見かけるワンコマンド方式です。

bash -c "$(curl -LSs https://raw.github.com/n2kia4/dotfiles/master/setup.sh)"

少し前までは、お決まりのスリーコマンド(clone, cd, 実行)方式だったのですが、少しでも楽に環境の再構築がしたい私は、ワンコマンドでセットアップを行なっています(やっていることは同じです)。

セットアッププロセス

セットアッププロセスはこんな感じです。

コード構成

プロセス毎に関数を作り、main関数でまとめています。

#!/bin/bash

check_os() {
    os_name="$(uname)"
    if [ "$os_name" != "Darwin" ]; then
        print_error "Sorry, this script is intended only for macOS"
        exit 1
    fi
}

download_dotfiles() {
    #...
}
#...
main() {
    check_os
    download_dotfiles
    symbolic_links
    install_homebrew
    install_packages
    install_vim_plugins
    update_vim_plugins
    change_login_shell
    reload_shell
}

main

今は1ファイル(setup.sh)で管理している状態なので、最強の dotfiles 駆動開発と GitHub で管理する運用方法 - Qiita こちらの記事を参考に「デプロイ」と「イニシャライズ」を切り分けることで、綺麗にしていこうと思います。

終わりに

だいぶ環境の再構築が楽になりました。今後も改良を続けていこうと思います。