GitHubでリポジトリを作成しましたらバッジをREADME.mdにはっつけてるんですけども、
毎回この作業をブラウザでやるのがいい加減面倒になってきましたので、
この作業を一括でぶるわっとやってくれるシェルスクリプトを作りました。
#!/bin/zsh CURRENT_REPOSITORY () { ref=$(git symbolic-ref HEAD 2> /dev/null) || ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo $(git remote -v | cut -d':' -f 2) } CURRENT_REPOSITORY_USER_NAME () { echo ${$(CURRENT_REPOSITORY | awk '{print $1}')%.git} } CURRENT_REPOSITORY_DIRECTORY=`git rev-parse --show-toplevel` CURRENT_REPOSITORY_NAME=$(basename $CURRENT_REPOSITORY_DIRECTORY) rm README.md touch README.md cat << EOT >> README.md ${CURRENT_REPOSITORY_NAME} =============== [![Build Status](https://travis-ci.org/$(CURRENT_REPOSITORY_USER_NAME).png)](https://travis-ci.org/$(CURRENT_REPOSITORY_USER_NAME)) [![Dependency Status](https://gemnasium.com/$(CURRENT_REPOSITORY_USER_NAME).png)](https://gemnasium.com/$(CURRENT_REPOSITORY_USER_NAME)) EOT
1. username/repository.git を取得する
oh-my-zshのgitプラグインから拾ってきました。
CURRENT_REPOSITORY () { ref=$(git symbolic-ref HEAD 2> /dev/null) || ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo $(git remote -v | cut -d':' -f 2) }
2. 1から username/repository を取得する
CURRENT_REPOSITORY_USER_NAME () { echo ${$(CURRENT_REPOSITORY | awk '{print $1}')%.git} }
awkでごにょごにょして%でいらない文字列を削除しております。
3. repository を取得
CURRENT_REPOSITORY_DIRECTORY=`git rev-parse --show-toplevel` CURRENT_REPOSITORY_NAME=$(basename $CURRENT_REPOSITORY_DIRECTORY)
basenameの出力結果を変数に格納するのは微妙に骨だったと記憶しております。
Basename and dirname 'permission denied' - Dev Shed
4. README.md 作成
なんか前にも同じようなことをやったので、それの応用です。
.travis.ymlを作成するシェルスクリプトを書いてみた - by shigemk2
touch README.md cat << EOT >> README.md ${CURRENT_REPOSITORY_NAME} =============== [![Build Status](https://travis-ci.org/$(CURRENT_REPOSITORY_USER_NAME).png)](https://travis-ci.org/$(CURRENT_REPOSITORY_USER_NAME)) [![Dependency Status](https://gemnasium.com/$(CURRENT_REPOSITORY_USER_NAME).png)](https://gemnasium.com/$(CURRENT_REPOSITORY_USER_NAME)) EOT
なぜこういうことが出来るのかというと、TravisCIやgemnasiumのバッジのマークダウンは基本的に構造が同じだからで、username/repositoryの部分だけ
変えたら問題ないからです。
なお、gistにもソースを公開しました。
Making README.md with TravisCI and gemnasium badges