これは

集え、初老丸達よ。初老丸達による世界に向けた技術的(又はそれに関連する)な物語を綴るカレンダーです。我こそ初老丸という方、初老丸予備軍の方も奮ってご参加下さい。ジーク・初老丸!

qiita.com

初老丸 Advent Calendar 2018 第 2 日目の記事になる予定です.

tl;dr

先日, 作成した furikake について, 実際にギョームで使ってみて, 自分が欲しいなあと思った機能の追加や発見したバグ等をコツコツ修正しています.

It is a command line tool to register your resources in Wiki page (Markdown format). - inokappa/furikake

github.com

furikake | RubyGems.org | your community gem host

ということで

トッピング機能

アドオン的な何か

詳細は README をご一読下さい.

It is a command line tool to register your resources in Wiki page (Markdown format). - inokappa/furikake

github.com

カレントディレクトリに addons ディレクトリを作成して, addons ディレクトリ以下に Ruby スクリプトを放り込むと, Wiki に載せたいドキュメントを簡単に追加出来るようになってます. 尚, 以下のように furikake setup を実行した際に addons ディレクトリを作成するかどうか確認されますので, 合わせてご確認下さい.

$ bundle exec furikake setup
[setup] creating .furikake.yml...
[setup] .furikake.yml already exists.
[setup] create `addons` directory? [y/n]
y
[setup] creating `addons` directory.
[setup] `addons` directory created.

サンプル

以下 Ruby スクリプトの簡単なサンプルです. 変数values[['value1', 'value2'], ['value3', 'value4']] と変数 contents のハッシュの構造だけを守っていただければ, お好きな情報を投稿することが可能になります.

module Furikake::Resources
  module Addons
    class Example
      def self.report(format = nil)
        values = [['value1', 'value2'], ['value3', 'value4']]
        contents = {
          title: 'Example',
          resources: [
            {
               subtitle: '',
               header: ['Title1', 'Title2'],
               resource: values
            }
          ]
        }
        Furikake::Formatter.shaping(format, contents)
      end

      def self.get_resources
        # ここは頑張って実装する必要があります
      end
    end
  end
end

addons ディレクトリにスクリプトを放り込むことで, 従来は AWS のリソースのみに対応していたところを, Azure や GCP 等の他のクラウドリソース等も Wiki に一覧として投稿することが可能になったはずです.

デーモン小暮

従来は

以下のようにコマンドラインから実行することしか出来ませんでした.

bundle exec furikake publish

cron や Fargate のタスク機能を利用することで自動的に定期投稿は可能でした. (実際には試せていませんが…)

デーモン化により

以下のように実行することで, furikake publish がバックグラウンドで実行されるようになります.

bundle exec furikake monitor --detach

定期的に (デフォルトは 3600 秒毎) リソースを一覧を取得して, 指定した wiki に情報を投稿します. この機能により, cron の設定等を行うことなくドキュメントの自動更新が可能となります.

有難うございます

デーモン化に伴い, 以下のコードをスーパー参考にさせて頂きました.

Ruby script testing to daemonize a ruby script. · GitHub

この場を借りまして, お礼を申し上げます. 有難うございます.

Docker 化

docker-compose を介して利用出来るように, 超簡単に Dockerfile を書き, docker-compose.yml を揃えました.

furikake を docker-compose で実行出来るようにしました. Contribute to inokappa/furikake-docker development by creating an account on GitHub.

github.com

よろしければ, ご利用下さいませ.

リリースに octorelease を利用するようにしました

Contribute to mizzy/octorelease development by creating an account on GitHub.

github.com

awspec でも利用させて頂いて, いい感じでリリースページを作ってもらえるので利用してみました.

以下のブログ記事が参考になります.

awspecはWIPなPull Requestをつかった開発をしています。 理由は 開発者の開発スピードが遅いので、とりあえず今何を作ろうとしているのかがわかったほうが良い気がしている 業務上の慣れ(いつもWIP PR) という、結構ゆるい理由だったのですが、今日「これはいいな...

k1low.hatenablog.com

以上

furikake の更新情報でした. よろしければ, furikake を使って頂きましてフィードバック頂けると嬉しいです.

元記事はこちら

最近の furikake 〜 ご飯のおかわりは 2 杯まで 〜