0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コマンド1回でgit cloneの実行とvscodeのワークスペースの設定をする

Last updated at Posted at 2024-04-29

概要

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 をして開いてくれるワークフローを作ると、リポジトリをキーワード検索で開けるので便利

image.png
image.png

0
1
0

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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?