golangでcrontabからドキュメントを作成するコマンドラインツール crondocを作った
javadoc,phpdoc的にcrontabからドキュメントを生成するツール
crondocをgolangでつくってみました
きっかけ
いくつかのサーバーの設定、ミドルウェア変更することになり、
影響範囲を確認していたのですが、サーバーごとにcronの運用が統一されていなかったのでcronまわり影響範囲を確認するのに時間がかかってしまいました
そこでcronの運用フローを統一する過程でcronの簡単なドキュメントを作成したくなりました
その際、javadoc,phpdocのcron版みたいのがないか探してみたのですが、ないようなのでせっかくなので自作してみました
crondocの機能
ざっくり下記のような機能で作ってみました
- 標準入力、ファイル指定でcrontabからドキュメントを出力
- 改行までをひとグループとしてドキュメント出力
- ドキュメントを出力はmarkdowm形式
- @authorなどのタグ付ができる
出力例
現状下記のようなcrontabの場合はこんな感じです
- crontab
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # @title monday.sh # @author hoge # @param env[dev|stg|prod] # start every monday 0 10 * * 1 sh /home/hoge/happy_monday.sh prod
↓↓↓
使い方
ソースはこちら
github.com
バイナリを落としてきて、下記のようにすればドキュメントが出力されるはずです
$ crodoc /etc/crontab $ crontab -l | crodoc -s