シェルスクリプトでCopyrightコメントを1行目に追加する方法

Copyrightコメントを1行目に追加

JavaScriptなどのコードを書く際に(c) iwb.jpのようなCopyrightコメントを1行目に追加したいことがある。

しかし、ファイルが複数ある場合やすでにCopyrightコメントがある場合は手作業で追記していくのは大変な作業になってしまう。

そこでシェルスクリプトの引数に指定したファイル名に自動的にCopyrightコメントを追記するシェルスクリプトファイルを自作した。もちろんすでにCopyrightコメントがある場合は重複を避けるため追記しないようにしてある。

node.js版も作成してあるので用途によってはこちらを使用したほうが良いだろう。

nodeの引数に指定したファイル名に自動的にCopyrightコメントを追記するnode.js用のスクリプトファイルを自作した

Copyrightコメント追記コードの使い方

以下のコードをc.shのような適当なファイル名で保存しあとchmod 744 c.shで権限を変更してターミナルでc.shを引数(パス)付きで実行するだけ。

$ chmod 744 c.sh
$ ./c.sh foo.js bar.js
#!/bin/sh

for FILE in $@; do
    fline=`sed -n 1P $FILE`
    if [ "$fline" != "// (c) iwb.jp" ]; then
      sed -i -e "1s/^/\/\/ (c) iwb.jp\\\\n/" $FILE
      sed -i -e s/\\\\n/\\$'\n'/g $FILE
      rm "${FILE}-e"
    fi
done

成功すれば下記のようにい1行目にコメントが追記される。

// (c) iwb.jp
function add(a, b) {
  return a + b
}
add(1, 2)

応用すれば特定のフォルダ内のファイルやGitの特定の状態のファイルだけにコメントを追記することもできるようになる。

シェルスクリプトだとnode.jsと異なりgitコマンドで簡単にコメントを追記したいファイルの一覧を取得できるのでGitからファイルのパスを取得したい場合はシェルスクリプトを使用したほうが良いだろう。