自作ライブラリを brew install してみた
概要
最近、MacOSを使い始めました。
brew install
めっちゃ便利やん、とか思いつつ、ジョーク・コマンドである sl
や cmatrix
で遊んでいました。
そんな時、「令和をアスキーアートでターミナルに表示したい」と思い、ライブラリを自作してみました。
もし、この記事を参考に自作ライブラリを作成してくださる方がいれば、ライブラリ名やファイル名を適宜変更してみてください。
基本的には、Homebrew の公式ドキュメントを参照しています。
実行コマンド
下記コマンドを実行すると、「令和」とターミナルで表示できます。
$ brew tap NaotoFujihiro/reiwa
$ brew install reiwa
$ reiwa
実行結果
リポジトリ構成
作成したライブラリは、下記リポジトリに格納しています。
C++で記述しているので、下記のファイルが必要です。
- reiwa.cpp
- reiwa.1
- Makefile
自作ライブラリを brew install
するために必要です。
- reiwa.rb
ライブラリの作成
reiwa.cpp
や Makefile
などの必要なファイルを作成します。
// Copyright (c) 2019 Naoto Fujihiro <[email protected]>
#include <iostream>
int main() {
std::cout << " ■ " << "\n";
std::cout << " ■■■ ■■■ " << "\n";
std::cout << " ■■ ■■ ■■■ ■■■■■" << "\n";
std::cout << " ■ ■■ ■ ■ ■" << "\n";
std::cout << " ■■ ■■ ■ ■ ■" << "\n";
std::cout << "■■ ■■■■■ ■■ ■■■■■■■ ■" << "\n";
std::cout << " ■■ ■ ■" << "\n";
std::cout << " ■■■■■■■■■ ■■■ ■ ■" << "\n";
std::cout << " ■ ■ ■■ ■ ■ ■" << "\n";
std::cout << " ■ ■ ■ ■ ■ ■" << "\n";
std::cout << " ■ ■ ■ ■ ■ ■" << "\n";
std::cout << " ■ ■ ■ ■■■■■" << "\n";
std::cout << " ■ ■■■ ■ ■ ■" << "\n";
std::cout << " ■ ■ " << "\n";
}
CC=g++
CFLAGS=-O
reiwa: reiwa.cpp
$(CC) $(CFLAGS) -o reiwa reiwa.cpp
ソースコード一式を、予め作成しておいた reiwa
リポジトリにpushします。
最後に、tag付けします。
$ git tag 0.0.1
$ git push origin 0.0.1
Formulaの作成
それでは、 brew install
できるようにしていきます。
まずは、Formulaを作成します。
$ brew create https://github.com/NaotoFujihiro/reiwa/archive/0.0.1.tar.gz
コマンドを実行すると、 reiwa.rb
という名前で、Formulaが作成されます。
保存場所は、
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
です。
なお、sha256
は https://github.com/NaotoFujihiro/reiwa/releases
からダウンロードしてきた、tag付けされた tar.gz
ファイルに対し、
$ openssl dgst -sha256 ~/Downloads/reiwa-0.0.1.tar.gz
SHA256(/Users/Tachikoma/Downloads/reiwa-0.0.1.tar.gz)=
と実行すると、取得することができるので、それを記述します。
最後に、作成したFormulaを、予め作成しておいた Homebrew-reiwa
リポジトリにpushします。
これで、brew install reiwa
できるようになりました!
蛇足
ソースコードを修正して再度pushした場合など、既に brew tap
したライブラリを削除したい時もあるかと思います。
そんな時は、
$ rm -rf /Users/<ユーザー名>/Library/Logs/Homebrew/reiwa
$ rm /Users/<ユーザー名>/Library/Caches/Homebrew/downloads/hogehoge--homebrew-reiwa-0.0.1.tar.gz\
$ rm -rf /usr/local/Homebrew/Library/Taps/naotofujihiro/
などのコマンドで、キャッシュやダウンロードファイルを削除してみてください。
はまったところ
homebrew-reiwa
リポジトリと、 reiwa
リポジトリのどちらにどのファイルを置けば良いのかという部分で混乱し、なかなか make
が通らなかった。
参考記事
https://qiita.com/hayashier/items/dd699857253b1f433655
https://qiita.com/masawada/items/484bbf83ef39cad7af74
https://github.com/masawada/homebrew-chikubeam
https://github.com/masawada/chikubeam
https://qiita.com/mountcedar/items/f10161d4e483aa8c1283
https://qiita.com/lrf141/items/9ba070a2a1c3e5faf71c
https://qiita.com/phi/items/b6a8073eca1a343204fb
cf. https://github.com/Homebrew/brew
Author And Source
この問題について(自作ライブラリを brew install してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/NaotoFujihiro/items/a42cc8e3ce06d835e858著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .