概要
git clone
してから vscode でフォルダを開くまでが面倒だったので、 clone
コマンドを作って workspace の設定ファイルが生成されるようにした。
alfred で workspace の設定ファイルを検索できるようにしているので、clone
後に直ちにローカルリポジトリを開けるようになった。
前提条件・制約
- alfred を使う場合は、workspaceファイルを1つのディレクトリ以下に集めておくことになる
- clone されるディレクトリは1つのディレクトリ以下に集まることになる
clone
コマンドになるスクリプト
下記をaliasに設定する
~/Development/commands/create-workspace/main.zsh
#!/bin/zsh
# 自分のPCのディレクトリに応じて編集する
CONFIG_REPOS_DIRECTORY=$HOME/Development/repositories
CONFIG_WORKSPACE_DIRECTORY=$HOME/Development/workspace-files
# 引数チェック
check_arguments() {
if [ $# -eq 0 ]; then
echo "Usage: main.zsh {git_clone_url}"
exit 1
fi
}
# リポジトリのクローン
clone_repository() {
local git_clone_url=$1
local repo_name=$(basename "$git_clone_url" | sed 's/\.git$//')
mkdir -p "$CONFIG_REPOS_DIRECTORY/$repo_name"
git clone "$git_clone_url" "$CONFIG_REPOS_DIRECTORY/$repo_name"
local clone_exit_code=$?
if [ $clone_exit_code -ne 0 ]; then
echo "git clone failed with exit code $clone_exit_code. Exiting script."
exit 1
fi
echo "$repo_name"
}
# VS Codeのワークスペース設定の生成
generate_workspace_json() {
local repo_name=$1
echo "Generating VS Code workspace configuration..."
jq --arg repo_name "$repo_name" '.folders[0].path = "../repositories/" + $repo_name' <<EOF > "$CONFIG_WORKSPACE_DIRECTORY/$repo_name.code-workspace"
{}
EOF
}
# メイン関数
main() {
check_arguments "$@"
local git_clone_url=$1
local repo_name=$(clone_repository "$git_clone_url")
generate_workspace_json "$repo_name"
echo "Command executed successfully!"
}
main "$@"
alfred (optional)
file search をして開いてくれるワークフローを作ると、リポジトリをキーワード検索で開けるので便利