2011 Oct 27

- by
Changwoo Park

bash-it

bash-it-a-day, custom plugin.

bash-it을 fork해서 나만의 저장소를 github에 만들고, 각 서버의 계정마다 clone해서 사용하고 있다. 손으로 fetch하는 일이 너무 귀찮아서 만들었다.

bash-it plugin

그래서 로그인 할 때 하루에 한번 fetch/merge를 수행하는 plugin을 만들었다:

function bash_it_a_day(){
  local today=`date +%Y%m%d`
  local file="/tmp/bash_it_a_day_$USER"
  local truncated=""

  if [ -f $file ]; then
    local uname=`uname`

    [ $uname = "Linux" ] && truncated=`date +%Y%m%d --reference=$file`

    [ $uname = "Darwin" ] && truncated=`stat -t %Y%m%d -f %Sm $file`

  fi

  if [ "$truncated" != "$today" ]; then
    cd $BASH

    local git_pid=`ps -U $USER | grep git | grep -v grep  | awk '{print $1}' | xargs`

    if [ $git_pid = "" ]; then
      git checkout mine
      git fetch origin
      git merge origin/mine
    fi

    > $file #truncate file

    cd ~
  fi

}

bash_it_a_day

이렇게 파일을 만들어서 $BASH/custom/bash-it-a-day.bash로 넣는다.

그러면 로그인할 때마다 fetch/merge를 하는데 하루에 한번만 한다.