Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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:

http://github.com/bla/my_super_project.git

So far I have this code:

function teste {
     if [ -d .git ]; then
         remotes=$(git remote -v | awk -F'git@github.com:' '{print $2}' | cut -d" " -f1)
         url="https://github.com/"
         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 https://github.com 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?

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

Problem solved:

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

        remote_url=$(echo $remotes | cut -d" " -f1)
        url="https://github.com/"
        url="${url}${remote_url}"
        xdg-open $url
    else
      echo "Not a git repo"
    fi;
}
share|improve this answer
1  
For those that doesn't understand what is happening, OP at first tried to execute the command $($remotes | cut -d" " -f1)" with $(...) instead of expanding it as he's doing with ${...}. –  Braiam Feb 17 at 2:07
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.