Bash Function to Open Git Repository with Browser

I'm trying to create a bash function so I can get this.

The user, via terminal, goes to the git project path like:

/home/daniel/projects/my_super_project

So the user will type open and the browser will open in the github.com like:

So far I have this code:

function teste {
     if [ -d .git ]; then
         remotes=$(git remote -v | awk -F':' '{print $2}' | cut -d" " -f1)
         url=""
         url="$url$($remotes | cut -d" " -f1)"
         # here I'll open the browser
     else
       # git rev-parse --git-dir 2> /dev/null;
       echo "Not a git repo"
     fi;
}

I check if there is a .git folder, if so, I look for the remote origin and get its value that is inside the remote_url. I was trying to concatenate the with the remote_url but no success because the terminal think it is a path so I get this:

bash: bla/my_super_project.git: No such file or directory

How can I concatenate these two values?

1

1 Answer

Problem solved:

function opengit {
    if [ -d .git ]; then
        remotes=$(git remote -v | awk -F':' '{print $2}' | cut -d" " -f1)
        if [ -z "$remotes" ];
        then
            remotes=$(git remote -v | awk -F' '{print $2}' | cut -d" " -f1)
        fi

        remote_url=$(echo $remotes | cut -d" " -f1)
        url=""
        url="${url}${remote_url}"
        xdg-open $url
    else
      echo "Not a git repo"
    fi;
}
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

James H. Sterling

James H. Sterling

Environmental Science & Climate Journalist

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.

Share this article
Twitter Facebook Pinterest