csvqのhomebrewでのインストール

Unofficialなインストール方法となりますが，2週間ほど前からmacOSでは[csvq](https://github.com/mithrandie/csvq)が[homebrew](https://brew.sh)でインストールできるようになっています

homebrewのFormulaファイルを追加してくださったのは @shigemk2 さんです

## インストール方法

```sh
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew update
$ brew install csvq
```

## パッケージマネージャの利用について

元々csvqは，以下の理由からパッケージマネージャでの配布を予定していませんでした

- csvqは実行時の他パッケージへの依存関係等はなく，配布している実行バイナリひとつで動作すること
- 配布しているバイナリを使用せず自分でビルドする際も，Goの標準機能で内部の依存関係を解決できること
- パッケージマネージャを使用してのインストールやアップデートではライセンスや変更履歴を確認を疎かにしてしまいがちなので，あまりそれを助長するようなことを開発者自身がやりたくはないこと

特に3つ目の理由については人によって考え方はいろいろだとは思いますが，上記を含めたメリット，デメリットを勘案し，現状ではcsvqについてはhomebrewを含めパッケージマネージャでのインストールは公式にはサポートしない方針です

これは別にパッケージマネージャというものを否定しているわけではなく，それに利便性があることは確かですし，個人的にも各種ツールの管理等に利用させていただいています．あくまでも公式にはサポートしないということで，利用者が自己の責任においてそれを利用することは自由で良いと考えています

ということで， @shigemk2 さん，homebrewのFormulaをよろしくお願いします

## おまけ

「サイゼリヤで1000円あれば最大何kcal摂れるのか」をcsvqで計算してみる

### 実行環境
csvq version 1.11.4

データは[https://github.com/hodaka0714/saize_calory_maxmization](https://github.com/hodaka0714/saize_calory_maxmization)からお借りします

### 計算方法
円あたりのカロリーが高い順に，1000円になるまでメニューを追加

```sql:greedy.sql
WITH RECURSIVE t (id, name, price, calorie, calorie_per_yen, total_price, total_calorie)
     AS (
         SELECT id, name, price, calorie, cpy, price, calorie
           FROM (
                  SELECT INTEGER(m.id) AS id,
                         m.name,
                         INTEGER(m.price) AS price,
                         INTEGER(m.calorie) AS calorie,
                         m.calorie / m.price AS cpy
                    FROM menu m
                   WHERE m.calorie <> 0
                     AND m.price <= 1000
                   ORDER BY cpy DESC
                   FETCH FIRST 1 ROW
                )
         UNION ALL
         SELECT id, name, price, calorie, cpy, price + total_price, calorie + total_calorie
           FROM (
                  SELECT INTEGER(m.id) AS id,
                         m.name,
                         INTEGER(m.price) AS price,
                         INTEGER(m.calorie) AS calorie,
                         m.calorie / m.price AS cpy,
                         t.total_price,
                         t.total_calorie
                    FROM menu m, t
                   WHERE m.calorie <> 0
                     AND m.price <= 1000 - t.total_price
                     AND m.calorie / m.price < t.calorie_per_yen
                   ORDER BY cpy DESC
                   FETCH FIRST 1 ROW
                )
     )
SELECT id,
       name AS `品名`,
       price AS `価格`,
       calorie AS `カロリー`,
       calorie_per_yen AS `円当たりカロリー`,
       total_price AS `累積価格`,
       total_calorie AS `累積カロリー`
  FROM t
 ORDER BY `累積価格` ASC;
```

### 実行

```sh
$ curl -o menu.csv https://raw.githubusercontent.com/hodaka0714/saize_calory_maxmization/master/menu.csv
$ csvq -s greedy.sql -f GFM
```

### 結果

|  id  |             品名             | 価格 | カロリー |  円当たりカロリー  | 累積価格 | 累積カロリー |
| ---: | ---------------------------- | ---: | -------: | -----------------: | -------: | -----------: |
|  102 | ラージライス                 |  219 |      454 | 2.0730593607305936 |      219 |          454 |
|   73 | アーリオ・オーリオ(Wサイズ)  |  574 |     1120 |  1.951219512195122 |      793 |         1574 |
|   25 | ポテトのグリル               |  199 |      366 | 1.8391959798994975 |      992 |         1940 |