Skip to content

Instantly share code, notes, and snippets.

@idris
Created January 20, 2011 22:23
Show Gist options
  • Save idris/788810 to your computer and use it in GitHub Desktop.
Save idris/788810 to your computer and use it in GitHub Desktop.
command-line utility that opens a browser to the given file/directory in GitHub.
#!/bin/bash
FILE=$1
if [ -d $FILE ]; then
DIR=$FILE
else
DIR=`dirname $FILE`
fi
function parse_git_branch {
local branch=`cd $DIR;git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
if [ "$branch" == "" ]; then
exit 1
else
echo $branch
fi
}
function parse_github_repo {
echo `cd $DIR;git config -l | grep 'remote.origin.url' | sed -En 's/remote.origin.url=git(@|:\/\/)github.com(:|\/)(.+)\/(.+).git/\3\/\4/p'`
}
function get_path {
if [ -d $FILE ]; then
FOO=`(cd $FILE; pwd)`
else
FOO=`(cd $DIR; pwd)`/`basename $FILE`
fi
PWD=`cd $DIR;cd $(git rev-parse --show-toplevel);pwd`
LEN=${#PWD}
LEN=$((LEN+1))
echo ${FOO:LEN}
}
function tree_or_blob {
if [ -d $FILE ]; then
echo 'tree'
else
echo 'blob'
fi
}
URL="https://github.com/$(parse_github_repo)/$(tree_or_blob)/$(parse_git_branch)/$(get_path)"
if [ "`which gnome-www-browser`" != "" ]; then
gnome-www-browser $URL
else
open $URL
fi
@ryanmcgrath
Copy link

Exactly, I know pain when it's staring me in the face, so my word is legit. ;0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment