Closed tuyuri6ka closed 7 months ago
特になし
dotfiles において重要なのは リポジトリにある dotfiles から $HOME へとシンボリックリンクを貼る処理となる。しかしながら現状のシンボリックリンクを貼る処理は以下のような非常に煩雑な書き方となっている。
https://github.com/tuyuri6ka/dotfiles/blob/741446702d3fb7455fd2f3fb8589dee71db73aac/install.sh#L111-L132
シンボリックリンクは、 ln -sfvn ${実体ファイルのパス} ${貼りたい場所のパス} で貼ることができる。また目的の場所はそれぞれ ${HOME}/users/${user_name}/dotfiles/(clone してできたリポジトリ) から ${HOME}/users/${user} に貼るだけで良いので、複雑な作業は必要ないはずである。
ln -sfvn ${実体ファイルのパス} ${貼りたい場所のパス}
${HOME}/users/${user_name}/dotfiles/
${HOME}/users/${user}
上記では dirname や basename を使って頑張って整形しているが、 realpath コマンドというものがあるのでこちらと grep をうまく組み合わせる手法を試してみる。
なお、 dotfiles は途中で ${HOME} を書き換えて HOME=${HOME}/users/${user} とするため、${HOME} の状態には気をつけることとする。
想定では git clone 後にできた ${HOME}/users/tuyuri6ka/dotfiles/dotfiles/ 配下で dot_list=$(ls -a | xargs realpath | grep -v "dotfiles$" | sort) をすることで .vimrc, .gitconfig などの絶対パスのリストを抽出し、あとはファイル名を取得しつつ tuyuri6ka/ 配下に ln -sfnv "${abspath}" "${relpath}" みたいなことをすれば、シンボリックリンクが晴れるはずである。
${HOME}/users/tuyuri6ka/dotfiles/dotfiles/
dot_list=$(ls -a | xargs realpath | grep -v "dotfiles$" | sort)
ln -sfnv "${abspath}" "${relpath}"
なお、 unlink は unlink コマンドを叩けば良いだけのはずである。
設計レビュー待ち
実装中
実装完了したのでCloseします。
関連調査 issue(あれば)
特になし
背景(なるべく詳しく、他タイトルのシスに説明するように)
dotfiles において重要なのは リポジトリにある dotfiles から $HOME へとシンボリックリンクを貼る処理となる。しかしながら現状のシンボリックリンクを貼る処理は以下のような非常に煩雑な書き方となっている。
https://github.com/tuyuri6ka/dotfiles/blob/741446702d3fb7455fd2f3fb8589dee71db73aac/install.sh#L111-L132
シンボリックリンクは、
ln -sfvn ${実体ファイルのパス} ${貼りたい場所のパス}
で貼ることができる。また目的の場所はそれぞれ${HOME}/users/${user_name}/dotfiles/
(clone してできたリポジトリ) から${HOME}/users/${user}
に貼るだけで良いので、複雑な作業は必要ないはずである。上記では dirname や basename を使って頑張って整形しているが、 realpath コマンドというものがあるのでこちらと grep をうまく組み合わせる手法を試してみる。
なお、 dotfiles は途中で ${HOME} を書き換えて HOME=${HOME}/users/${user} とするため、${HOME} の状態には気をつけることとする。
実装方針
想定では git clone 後にできた
${HOME}/users/tuyuri6ka/dotfiles/dotfiles/
配下でdot_list=$(ls -a | xargs realpath | grep -v "dotfiles$" | sort)
をすることで .vimrc, .gitconfig などの絶対パスのリストを抽出し、あとはファイル名を取得しつつ tuyuri6ka/ 配下にln -sfnv "${abspath}" "${relpath}"
みたいなことをすれば、シンボリックリンクが晴れるはずである。なお、 unlink は unlink コマンドを叩けば良いだけのはずである。
issue 作成後の作業
設計レビュー待ち
ラベルを外し、実装中
ラベルをつける