ScalaCSSでサイトを作ったfand.github.io今年2月からScalaのチームに異動し、Scala入門している。2月中はゆっくりコップ本を読んでいたのだけど、やっぱり手を動かさないと自信が付かないので、何かツールを作る事にした。PagesもScala.jsやScalaCSSで実装してみた。!!!レポジトリをまるごとコピーしてくれるやつ。ブランチを移動する度にコンパイルで時間かかるのを回避するため、ブランチ毎にコピーしたらいいのでは、という発想(上手く行ってるかはわからない......)。するのが一番はやいし、ツールを作るにしても普段だったらJSで書くとこだけど、今回はせっかくなのでScalaでCLIツールを作ってみた。使い方brewでインストール可能。かっこいいヘルプが出る。入力すると以下の処理が走る。以下のディレクトリを一覧できる。すると絞り込みつつ移動できて便利。利用してシェルコマンドを実行しているだけ。Gitレポジトリの操作ということで、最初はJGitを利用していたんだけど、シェルコマンドを利用したほうが楽なことがわかったのでやめてしまった。ブロックを評価した結果をSomeで返し、例外が出たらNoneを返してくれる。seratch.hatenablog.jp個人的には、CLIツールを実装するときは気軽に死にたい。JSだと、大部分ををPromiseベースで実装して、一番外側で全部catchするというのをよくやっている。いう関数を作って、気軽に死ねるようにした。あるが、あんまり好みじゃなかったので今回は利用していない。centralに登録したり、オレオレmavenレポジトリを作って公開するらしいけど、CLIツールを配布できるか良くわからなかった。使えば簡単に配布できるらしいけど、利用者もconscriptをインストールする必要があってなんか面倒。sbtはhomebrewで配布されているので、今回はsbtを真似てみることにした。今回つくったformulaはこんな感じ。https://github.com/fand/homebrew-clonepool/blob/master/clonepool.rbsbtのformulaと大体同じ。するシェルスクリプトを置いている。jarファイルはsbt-assemblyというsbtプラグインを利用している。実行すると勝手にjarが出来て便利。Reactで構成した。Octocatをクリック(またはタップ)すると回転します。Scala.jswww.scala-js.orgAltJSの一種。Scalaで書かれたコードをJSに変換する。一昔前に「機能もヤバいしファイルサイズもデカ過ぎてヤバい」って話題になってたけど、今では大分マシになってる。