Corredor

ウェブ、プログラミングの勉強メモ。

素振り環境として package.json の用意と Git 管理を一気に始めるシェルスクリプト

普段、npm パッケージを使った素振り環境を作るために、

  • mkdir して cd して、
  • npm init -y して package.json を調整して、
  • git init して .gitignore を作って、
  • git commit --allow-empty で初回コミットを打つ、

みたいなことをやっているのだが、コレをシェルスクリプトでコマンド化した。

#!/bin/bash

# npm・Git を揃えた素振り環境を作る

# 引数チェック
if [ $# -ne 1 ]; then
  echo '引数でディレクトリ名を指定してください・処理を中止します'
  exit 1
fi

DIRECTORY_NAME="$1"

# ディレクトリの存在チェック
if [ -d "$DIRECTORY_NAME" ]; then
  echo '指定のディレクトリが既に存在します・処理を中止します'
  exit 1
fi

# ディレクトリを作成して移動する
mkdir "$DIRECTORY_NAME"
cd "$DIRECTORY_NAME"

# npm init
cat << EOF > package.json
{
  "name": "$DIRECTORY_NAME",
  "version": "0.0.0",
  "private": true,
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  }
}
EOF

# git init
git init > /dev/null

# オレオレ .gitignore の準備
cat << EOF > .gitignore
.DS_Store
Thumbs.db
*.log

node_modules/
EOF

# 初回コミット
git add .
git commit -m 'Init' > /dev/null

# 完了
echo "Finished"

このコードを create_practice_directory みたいな名前で PATH の通っているところに保存し、実行権限を付けてやる。

僕は ~/.bash_profile にて、ユーザホーム直下に作った ~/bin/ ディレクトリを PATH に追加しているので、自作コマンドはココに置くことにしている。

# ~/.bash_profile で以下のように PATH を追加している
export PATH="~/bin:$PATH"

# 実際のところ、ツールによってはチルダ「~」を上手く解釈してくれないことがあるので、以下のようにフルパスを指定している (コレは Mac の場合)
export PATH="/Users/Neo/bin:$PATH"
# 作成したファイルに実行権限をつける
$ chmod +x ~/bin/create_practice_directory

あとは引数でディレクトリ名を指定すれば、カレントディレクトリ配下に作業ディレクトリが作成される。

# 「electron-practice」ディレクトリを作る
$ create_practice_directory electron-practice
Finished

package.json.gitignore の内容は、自分好みに変更している。npm init -y だとちょっと不要なゴミが入るので、ヒアドキュメントでファイル生成することにした。

Git の初回コミットは何のファイルも含みたくない、という場合は、git add せずに git commit --allow-empty -m 'Init' としてやればよいだろう。

あとはお好みで、作業完了後に open . (MacOS) もしくは start . (Windows GitBash) を実行してやれば、作成した作業ディレクトリが開く。

Bash の条件文で使う記号の類がなかなか覚えられない。

  • -d "【ディレクトリ名】 で当該ディレクトリの存在チェック。! -d 【ディレクトリ名】 とすれば、「ディレクトリが存在しない場合は」となる
  • 【数字 A】 -ne 【数字 B】 で Not Equal。数値として不一致の場合は、となる

シェルスクリプトは毎度ググりながら何となく書いている。

入門bash 第3版

入門bash 第3版