名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

gitignore.io を叩いて、その結果を保存するだけのスクリプトを書いた

まあ適当に書きました。久々にQiitaの自分の記事を読んでいて思い出した課題をこなすみたいな感じ。

昔書いた記事はこれ。

qiita.com

書いたスクリプトはこれ。

create_gitignore() {
    # argv length check
    if [ -z $1 ]; then
        echo 'Usage: git_ignore arg1 arg2 arg3 ...'
        return
    fi

    # overwrite check
    flag='y'
    if [ -e '.gitignore' ]; then
        printf 'Are you overwrite .gitignore ? [y/N]: '
        read flag;
    fi

    # download .gitignore
    if [ $flag = 'y' ]; then
        s=$(echo $@ | tr ' ' ',')
        curl -f https://gitignore.io/api/$s -o .gitignore
        echo "create .ignore file for: ${s}"
    fi
    echo 'finish.'
}

こういうことを考えてた。

  • https://gitignore.io/api/curl で叩いてその結果を .gitignore に書き込む
    • ホームページで叩いてみた感じ、カンマ区切りで言語なり環境なりを入れれば複数のものが一気に取れるっぽい
  • Shellに引数で言語名を渡す
    • 存在してなさそうなやつはエラーにしたいので curl-f を指定
    • 引数0個のときはすぐ終了するようにした
    • create_gitignore python pycharmcreate_ignore python,pycharm も両方動くはず
  • 実行したときに勝手に上書きされるのはちょっと、と思ったので、上書き確認をするようにする
    • echo -n がうまく動作しないので(テストしてたときはshだったので、それが原因かも)、 printf に逃げる

久々にShellを触ると知らないオプションをいっぱい調べるので、結構学び合っていいなあと思う。

(なんかもっと柔軟性もたせてGoとかでラップしたものを書いても良かったかもしれないな、と書き終わってから思いました)