initial commit

This commit is contained in:
David O'Trakoun 2015-03-05 14:51:02 -05:00
commit 12cbac42e8
2 changed files with 94 additions and 0 deletions

30
README.md Normal file
View file

@ -0,0 +1,30 @@
# git-my v0.1
> Lists (stale) (branches|tags) in the remote named (origin) (where you were
> the last committer)
[Homepage](https://github.com/davidosomething/git-my)
## Installation
- Add the `git-my` file somewhere in your path, e.g. `/usr/local/bin/`
## Usage
From command line execute:
```
git my
```
## TODO
- Add options:
```
-U|--username="gitconfig user.name"
-R|--remote=origin
-T|--tags
-B|--branches
-F|--filter=mine,stale
```
Copyright (c) 2015 David O'Trakoun

64
git-my Executable file
View file

@ -0,0 +1,64 @@
#!/usr/bin/env bash
# git-my v0.1
#
# Lists (stale) (branches|tags) in the remote named (origin) (where you were
# the last committer)
#
# Copyright (c) 2015 David O'Trakoun <me@davidosomething.com>
#
# Usage:
# git my
#
# Options:
# @todo NOT IMPLEMENTED
# -U|--username="gitconfig user.name"
# -R|--remote=origin
# -T|--tags
# -B|--branches
# -F|--filter=mine,stale
#
_check_in_repository() {
git rev-parse --git-dir > /dev/null 2>&1
}
_filter_mine() {
local git_user=$(git config --get user.name)
# use eval to not parse the fmt string
local my_remotes=$(echo "$1" | grep -i "^$git_user")
echo "$my_remotes" | awk -F'\t' '{ print $2 }'
}
# @TODO
_filter_stales() {
local raw_stales=$(git remote prune --dry-run origin)
echo "$raw_stales"
}
_main() {
if ! _check_in_repository ; then
echo "This is not a git repository."
exit 1
fi
# user.name<TAB>branch.name
# the TAB is used as a delimiter to awk with
local fmt='
a=%(authorname)
r=%(refname)
b=${r#refs/remotes/origin/}
printf "%s\t%s\n" "$a" "$b"
'
local cmd_everyones_remotes=$(
git for-each-ref --shell --format="$fmt" refs/remotes/origin
)
local everyones_remotes=$(eval "$cmd_everyones_remotes")
_filter_mine "$everyones_remotes"
}
_main