by shigemk2

当面は技術的なことしか書かない

.travis.ymlと、README.mdと、TestFlightSDKを一括で用意するコマンドを作ってみた

概要

なんかもうシリーズ化している上にいつまで続くのこのシリーズという感じですが、
たぶん今回で終わりです。

いままで作ったシェルスクリプトを並べてだけのシェルスクリプト
my_motion_createを作りました。

#!/bin/zsh
maketravis
makeiossdk
makereadme

このコマンドを叩くだけで、以下のことを一括でやってくれます。

  • TravisCIまわりの設定
  • READMEの作成及びGemnasium TravisCIバッジの追加
  • TestFlightSDKのダウンロード及び配置

やはりREADMEにバッジがあると嬉しいよね。もっと言うと
バッジが緑だと安心するよね。

という優越感を見たすためだけにmakereadmeコマンドは存在します。

シェルスクリプトについて

maketravis

#! /bin/zsh
if [ ! -e .travis.yml ];then
    echo "\033[0;32m"'Making .travis.yml ....'"\033[0;39m"
    touch .travis.yml
    cat << EOT >> .travis.yml
language: objective-c
before_install: ruby --version
EOT
    echo "\033[0;32m"'Finish ....'"\033[0;39m"
    travis sync
    travis enable
else
    echo "\033[0;31m"'.travis.yml already exists!'"\033[0;39m"
fi

makeiossdk

#! /bin/zsh
if [ -e vendor/TestFlightSDK2.0.2 ]; then
    echo "\033[0;31m"'Directory vendor/TestFlightSDK2.0.2 already exists! '"\033[0;39m"
else
    echo "\033[0;32m"'Downloading TestFlightSDK2.0.2.zip from https://testflightapp.com/sdk/download/94/'"\033[0;39m"
    curl -O https://d193ln56du8muy.cloudfront.net/sdk/1380588410/TestFlightSDK2.0.2.zip
    echo "\033[0;32m"'Making directory vendor and unzip donload file ....'"\033[0;39m"
    mkdir vendor
    unzip TestFlightSDK2.0.2.zip -d vendor/TestFlightSDK2.0.2
    rm -f TestFlightSDK2.0.2.zip
    echo "\033[0;32m"'Remove zip file ....'"\033[0;39m"
    echo "\033[0;32m"'Done ....'"\033[0;39m"
fi

makereadme

#!/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)
if [ ! -e README.md ];then
    echo "\033[0;32m"'Making .travis.yml ....'"\033[0;39m"
    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
    echo "\033[0;32m"'Finish ....'"\033[0;39m"
else
    echo "\033[0;31m"'README.md already exists!'"\033[0;39m"
fi

ポイント

ファイルの有無の確認 シェルスクリプトでファイル存在確認 - fantasista_ikの日記

if [ ! -e .travis.yml ];then

ディレクトリの有無の確認 [Bash] ファイルやディレクトリの存在をチェックする方法

if [ -e vendor/TestFlightSDK2.0.2 ]; then

echo に色をつける シェルでechoの文字に色をつける方法 - webネタ
ASCII Table - ANSI Escape sequences

echo "\033[0;32m"'Finish ....'"\033[0;39m"