LoginSignup
2
0

More than 3 years have passed since last update.

ドットファイル達をGitHubにpushするスクリプト

Last updated at Posted at 2019-05-19

みんな .zshrcとか、いったいどうやって、どこに保存しているの?

push_machine_settings
#!/bin/bash

REPOSITORY=/path/to/local/repository
FILES=(
    "/Users/ito_masakuni/.zshrc"
    "/Users/ito_masakuni/.vimrc"
)
DIRS=(
    "/Users/ito_masakuni/Desktop/misc/bin"
)

read -p "push ok? yes/[no]: " YN

if [ "${YN}" != "yes" ]; then
    exit 0
fi

mkdir -p ${REPOSITORY}/files
for f in ${FILES[@]}; do
    TARGET_DIR=$(echo ${f} | sed "s/[\/\.]/_/g")
    mkdir -p ${REPOSITORY}/files/$TARGET_DIR
    cp -v ${f} ${REPOSITORY}/files/$TARGET_DIR/$(basename ${f})
done

mkdir -p ${REPOSITORY}/dirs
for d in ${DIRS[@]}; do
    TARGET_DIR=$(echo ${d} | sed "s/[\/\.]/_/g")
    mkdir -p ${REPOSITORY}/dirs/$TARGET_DIR
    cp -vr ${d}/ ${REPOSITORY}/dirs/$TARGET_DIR
done

cd ${REPOSITORY}

read -p "commit message: " MESSAGE

git status
git add -A .
git commit -m ${MESSAGE}
git push origin master
  1. GitHubなんかにリポジトリを作る。秘匿情報が入らないように気をつけてるけど、何となくprivateでリポジトリは作ってある。
  2. 作ったGitHubのリポジトリを /path/to/local/repository にcloneしておく。
  3. 上記のスクリプトにパスを通しておいて、push_machine_settings とかって名前にしておく。保存したいドットファイルやディレクトリを設定しておく。
  4. .zshrc とか .vimrc とかを変更して気が向いたら、 push_machine_settings をたたく。
  5. リポジトリが更新される。ファイルのパス中のスラッシュはアンダースコアに置換される。

もっとクールな方法がある気がしている。探してみたらあった。たぶんこれ。

「最強の dotfiles 駆動開発と GitHub で管理する運用方法」
https://qiita.com/b4b4r07/items/b70178e021bef12cd4a2

やってみよ。

2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0