Skip to content

Commit

Permalink
Merge pull request #70 from hallzy/master
Browse files Browse the repository at this point in the history
Added feature that let's you specify how often to fetch
  • Loading branch information
michaeldfallen committed Oct 27, 2015
2 parents 934f6fd + 225de54 commit 47addd8
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 3 deletions.
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,25 @@ export PROMPT="$PROMPT\$(git-radar --zsh --fetch) "
```
[(note: the `\` escaping the `$` is important)](#ensuring-prompt-execution)

You may also choose to fetch at a customized interval of time. To do so, add
this to your .bashrc, .zshrc:

```bash
export GIT_RADAR_FETCH_TIME=<seconds>
```

For example, to fetch every 30 seconds (instead of the default 5 minutes):

```bash
export GIT_RADAR_FETCH_TIME=30
```

You can also do this in the gitradarrc file:

```bash
GIT_RADAR_FETCH_TIME=30
```

## Customise your prompt

Git Radar is highly customisable using a prompt format string. The 4 features
Expand Down Expand Up @@ -235,6 +254,7 @@ The default prompt format uses this to add spaces only if the feature would
render. In that way the prompt always looks well spaced out no matter how many
features are rendering.


## Support

### Ensuring prompt execution
Expand Down
2 changes: 2 additions & 0 deletions git-radar
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,11 @@ while [[ $# > 0 ]];do
if [[ "$command" == "--fetch" ]]; then
nohup $dot/fetch.sh >/dev/null 2>&1 &
fi

if [[ "$command" == "--zsh" ]]; then
$dot/prompt.zsh $args
fi

if [[ "$command" == "--bash" || "$command" == "--fish" ]]; then
$dot/prompt.bash $args
fi
Expand Down
23 changes: 20 additions & 3 deletions radar-base.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,20 @@ timethis() {
echo "$1 - $dur" >> $HOME/duration.dat
}

get_fetch_time() {
if [ -f "$rcfile_path/.gitradarrc.bash" ]; then
source "$rcfile_path/.gitradarrc.bash"
elif [ -f "$rcfile_path/.gitradarrc.zsh" ]; then
source "$rcfile_path/.gitradarrc.zsh"
elif [ -f "$rcfile_path/.gitradarrc" ]; then
source "$rcfile_path/.gitradarrc"
fi

FETCH_TIME="${GIT_RADAR_FETCH_TIME:-"$((5 * 60))"}"
echo $FETCH_TIME

}

prepare_bash_colors() {
if [ -f "$rcfile_path/.gitradarrc.bash" ]; then
source "$rcfile_path/.gitradarrc.bash"
Expand Down Expand Up @@ -169,10 +183,10 @@ time_now() {
}

time_to_update() {
last_time_updated="${1:-$FETCH_TIME}"
if is_repo; then
local timesincelastupdate="$(($(time_now) - $(timestamp)))"
local fiveminutes="$((5 * 60))"
if (( $timesincelastupdate > $fiveminutes )); then
if (( $timesincelastupdate > $last_time_updated )); then
# time to update return 0 (which is true)
return 0
else
Expand All @@ -185,7 +199,10 @@ time_to_update() {
}

fetch() {
if time_to_update; then
# Gives $FETCH_TIME a value
get_fetch_time

if time_to_update $FETCH_TIME; then
record_timestamp
git fetch --quiet > /dev/null 2>&1
fi
Expand Down
3 changes: 3 additions & 0 deletions test-directories.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,14 @@ test_record_timestamp_in_repo() {

test_time_to_update_when_timestamp_is_old() {
cd $scriptDir
FETCH_TIME="$((5 * 60))" # Fetch every 5 mins
touch -A "-010000" "$(dot_git)/lastupdatetime"
assertTrue time_to_update
}

test_not_time_to_update_when_just_recorded() {
cd $scriptDir
FETCH_TIME="$((5 * 60))" # Fetch every 5 mins
record_timestamp
assertFalse time_to_update
}
Expand All @@ -77,6 +79,7 @@ test_time_to_update_when_no_timestamp() {
cd_to_tmp
git init --quiet

FETCH_TIME="$((5 * 60))" # Fetch every 5 mins
time_to_update
assertTrue time_to_update

Expand Down

0 comments on commit 47addd8

Please sign in to comment.