Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Rust でパーソナルカラーを診断できる CLI を作った
sadnessOjisan
January 23, 2022
Programming
0
51
Rust でパーソナルカラーを診断できる CLI を作った
https://github.com/sadnessOjisan/pasona
sadnessOjisan
January 23, 2022
Tweet
Share
More Decks by sadnessOjisan
See All by sadnessOjisan
div 上にコメントを流す技術
sadnessojisan
0
84
サーバーアーキテクチャと非同期ランタイムいろいろ
sadnessojisan
0
440
SSG is a compiler
sadnessojisan
6
4.2k
不用品掲示サイトをMicroCMS + NextJS + vanilla-extract で作った話
sadnessojisan
3
750
preactの仕組みを理解する軽量版教育用preactを作ってる話
sadnessojisan
4
2.3k
Node.jsの非同期とI/Oについて調べてみた
sadnessojisan
2
660
TypeScriptのDIはどうすればいいの?
sadnessojisan
10
2.3k
簡単には届かなかったweb push/web-push-is-difficult#pwanight
sadnessojisan
2
300
gatsby-imageをやめたいから勉強した話 -gatsbyをamp化したい-
sadnessojisan
0
740
Other Decks in Programming
See All in Programming
即、New Relic / New Relic NOW!
uzulla
0
270
ANR overview at Uber + Leveraging ApplicationExitInfo API
yhartanto
0
330
io22 extended What's new in app performance
veronikapj
0
330
git on intellij
hiroto_kitamura
0
160
Power Automateドリブンのチームマネジメント
hanaseleb
0
180
短納期でローンチした新サービスをJavaで開発した話/launched new service using Java
eichisanden
6
1.9k
How we run a Realtime Puzzle Fighting Game on AWS Serverless
falken
0
240
Scrum Fest Osaka 2022/5年で200人になったスタートアップの アジャイル開発の歴史とリアル
atamaplus
1
800
こそこそアジャイル導入しようぜ!
ichimichi
0
1.1k
From Java through Scala to Clojure
lagenorhynque
0
140
Java初心者が知っておくべきプログラミングのこと - JJUG CCC 2022 Spring
kishida
4
520
インターン生・新卒向け、学校でもっと教えてほしいITエンジニア基本スキル
nearme_tech
0
120
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
415
59k
Scaling GitHub
holman
451
140k
Pencils Down: Stop Designing & Start Developing
hursman
112
9.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
How to train your dragon (web standard)
notwaldorf
58
3.9k
Faster Mobile Websites
deanohume
294
28k
KATA
mclloyd
7
8.7k
Code Review Best Practice
trishagee
43
9k
The Pragmatic Product Professional
lauravandoore
19
2.9k
Teambox: Starting and Learning
jrom
123
7.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
349
27k
Transcript
None
None
None
None
None
_⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈_ > canvaでスライド作ると < > いい感じになるよねwww <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ https://www.canva.com/templates/EAEY6miQi00-pink-and-white-fashion-presentation/
_⼈⼈⼈⼈⼈_ > 飽きた <  ̄Y^Y^Y^Y^Y^ ̄
改めて自己紹介 • @sadnessOjisan (Twitter, GitHub) • Kuso app creator •
Iris LT 会は皆勤賞
パーソナルカラーとは • その人にあう色 • 何色が似合うかではなく、ど んな色が似合うか • どんなピンクが似合う? • 青み黄みと明暗を、イエベ春
、ブルベ夏、イエベ秋、ブル ベ冬として表現 https://personalcol0r.com/personalcolor/4season/
何を作ったか -> pasona • パーソナルカラーを診断できるCLI • パーソナルカラーとその色にあったライブラリを紹介する https://github.com/sadnessOjisan/pasona
DEMO
None
None
_⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈⼈_ > パーソナルカラーのロゴを持つ < > ライブラリを紹介される <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
工夫したこと • 全OSで 0deps で動作する • GitHub Actions ベースの publish
フロー • Tag を打つと全環境に対してコンパイル • GitHub Release 上にバイナリを吐く • brew を向けることで brew 経由でインストールできる • brew tap sadnessOjisan/pasona • brew install sadnessojisan/pasona/pasona
なぜRust • 全環境に対するシングルバイナリを吐き出せる • Mac, Win, Linux • クロスコンパイル •
CLIの状態管理が容易 • Reduxみたいなのが言語に組み込まれてる • CLIパーサーが強力 • clap • --help などのオプションを生やしてくれる • Description はコメントから生成できる
バイナリを吐くために • Rustではクロスコンパイルがサポート されている • cross • しかし、それに頼らず全OS上でビルド • ubuntu-latest
上では Win のビルドできない • ⽅法はあるがビルドコンポーネントの追加 とyaml上での分岐を頑張らないといけない • GHAでは Mac, Win, Linux のインスタン スを使える • 直接そのOS上でビルドすればいいじゃん
バイナリの配布 • GitHub Release • tag に対して Release Note を作
る機能 • バイナリを登録できる • バイナリに対してURLを発行で きる • brew から向けられる • Git tag • Release を作る前に自分で tag を切っておく
パッケージマネージャー • brew は自分のコマンドを インストールできる • Homebrew-${command} と いうレポジトリに Formula
を登録 • Formula file • コマンドの設計図 • コマンドがデプロイされて いる位置の指定 • インストール時にhookして 実行する処理の登録 • ここでは zip を unzip している
CLI配布するなら Rustがいいぞ! brew tap sadnessOjisan/pasona brew install sadnessojisan/pasona/pasona