LoginSignup
0
0

uuidをたくさん生成するコマンドをhomebrewで配布した

Posted at

uuidをたくさん生成したかった

何かとたくさん必要になるuuidを生成するスクリプト。

#!/bin/bash

function gen_uuids() {
    for i in $(seq 1 $1) ; do
        uuidgen | tr "[:upper:]" "[:lower:]"
    done
    return 0
}

if [[ "$1" =~ ^[0-9]+$ ]]; then
    gen_uuids $1
elif [ "$1" = "" ]; then
    gen_uuids 1
else
    echo 'Please input number!!!'
fi

homebrewで配布

homebrewで公開する方法はよくあるので、詰まった部分のメモ。
GitHubでリポジトリ作成(homebrew-〇〇という名前で作成)、リリース/タグ作成まで完了させる。

brew create

GitHubのリリースで作成したtar.gzファイルを指定して
brew create https://github.com/bebeken/homebrew-genuuids/archive/v1.0.tar.gz
を実行すると、エディタが起動して、Formulaファイルが作成される。

↑の場合は、homebrew-genuuids.rbが作成された。
パスは、/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/でした。

公式に取り込まれたい場合は、ここでブランチを切ってPRする?みたい。

そうでない場合は、ここで作成されたhomebrew-genuuids.rbを自分のリポジトリにcommitしてpushする。

brew tap / brew install

GitHubのリポジトリをhomebrewに追加する
brew tap bebeken/genuuids

installする
brew install genuuids

ここのタイミングでいろいろ詰まった

installの指定が思った通りにならない

brew createで作成されたFormulaファイルhomebrew-genuuids.rbを、そのまま使ってしまうとbrew install bebeken/genuuids/homebrew-genuuidsと指定しないとinstallできなかった。
brew install genuuidsとシンプルなinstallにしたい場合は、ファイル名をgenuuids.rbにする。

また、Formulaファイルのclass名もHomebrewGenuuidsからGenuuidsにした方が良さそう。

homebrew-genuuids.rbではなくて
class HomebrewGenuuids < Formula
  desc ""
  homepage ""
  # ~~省略~~
genuuids.rbにした方が良さそう
class Genuuids < Formula
  desc ""
  homepage ""
  # ~~省略~~

エラーメッセージEmpty installation

作成されたFormulaファイルを適当にいじっていたら、brew install時にエラーが発生した。
原因は、installの項目を消してしまっていたことにあった。

↓ソースコードを読むと何かしらは書かないといけないみたいでした
https://naoty.hatenablog.com/entry/2017/02/20/223011

genuuids.rb
class Genuuids < Formula
  # ~~省略~~

  def install
    bin.install "genuuids"
  end

genuuids

install

$ brew tap bebeken/genuuids
$ brew install genuuids

how to use

$ genuuids 10
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0