golangでdgate-inviteというの作った #deploygate

概要

golangでdgate-inviteっていうコマンド作った
henteko/dgate-invite · GitHub

golangを書くことを目的に作った
少しは勉強になった気がする

dgate-invite

dgate-inviteとは、DeployGateAPIであるInvite APIを叩くコマンドです
もともとこのInvite APIには、GET,POST,DELETEで各々各アプリのメンバーを取得出来たり追加出来たり削除出来たりするのだけど、それをコマンドで出来るようにしてる

使い方

こんな感じで使える
package名とかuser名は各々のに置き換えてもらいたい

# GET
$ dgate-invite -g -p com.henteko07.assisthack
# POST
$ dgate-invite -i -p com.henteko07.assisthack henteko2
# DELETE
$ dgate-invite -d -p com.henteko07.assisthack henteko2

実際に使ってみる

最近流行のpecoを使えばインタラクティブにメンバー一覧から探してメンバーから削除なんてことも出来る

$ dgate-invite -g -p com.henteko07.assisthack | peco | xargs dgate-invite -d -p com.henteko07.assisthack

f:id:henteko07:20140720143015g:plain

あとは社員のメンバーリストを用意してそこからインタラクティブに選択しながらinviteするみたいなことも出来る

$ cat user_list.txt | peco | xargs dgate-invite -i -p com.henteko07.assisthack

f:id:henteko07:20140720143529g:plain

peco便利や…
このgifとかはttygifとttyrec使いました、便利

ログインとか

ログインには、公式のdgateが参照しているローカルの設定ファイルを見てる
なので、dgateコマンドを既に使ってる人は特別なログイン処理とか要らない
ログインとかしたかったらこんな感じで出来る

# ログイン
$ dgate-invite -login # nameとかtoken聞かれる
# ログアウト
$ dgate-invite -logout

実装

実装は、適当な感じにやった
httpのライブラリとか、標準のnt/httpパッケージを使おうとしたけど、とりあえずmreiferson/go-httpclient · GitHubとかを使った
標準のでも良かった気がする
最初はddliu/go-httpclient · GitHubを使ってたけど、DELETEとかに対応してなかったので、自分で書いた
https://github.com/henteko/dgate-invite/blob/master/dgate/simplehttpclient.go
fileのpostも書いたけど、使ってなくて完全にミスった
多分壊れてる

あとはjmoiron/jsonq · GitHubを使ったりしたけど、これも標準のでいいかもなーとか思ってる
コマンドの入力のパースには標準のflagパッケージ使ってて、golangは大体標準でいいのかもしれないって気持ちになった

package分離

最初はGO_PATHとかよくわからなかったけど、自分で設定してるGO_PATHに移動してその中のsrc/github.com/hentekoとかいうところにdgate-inviteとか置いて、その中にpackage dgate作りたかったらdgate-invite/dgateって掘ってその中に.goファイルを入れれば、mainではimport github.com/henteko/dgate-invite/dgate で参照出来て便利だった
これはいい
public methodは先頭大文字ってのもわかりやすいなぁ

CI

CIにはhttps://drone.ioを使ってる
使ってるけど、まだテストとか書いてないのでクロスコンパイル用に回してる
drone、travisとかに比べるとgithubにpushしてからの反応が糞早くてめちゃくちゃいい
使いやすいし

最後に

golangむずかしい
お使いください

AncoっていうAndroidのライブラリをまとめておくproxy的なのを作ってる

http://24.media.tumblr.com/9018dd5b426a8de052efacbbccce591b/tumblr_mgi37eCKwu1s0rgcwo1_1280.png

henteko/anco · GitHub

Anco

半月前?位からAncoっていうAndroidライブラリーをまとめて置いておいて、Proxyみたいな感じでgradleからアクセス出来る物を作ってた

このAncoに登録されてあるライブラリならこんな感じでurl一個だけで済むみたいな世界観

maven {
  url 'https://anco.herokuapp.com/repository'
}

(ちなみにまだ登録されてるライブラリありません)

なんで作ってるのか

大体こんな感じ
Androidのライブラリを簡単に公開出来る場が欲しい - hentekoのdev日記
ライブラリを上げる場所はみんな大好きgithubでいいよねみたいな感じで、その場合build.gradleに書くurlがいっぱいになるなー嫌だなーみたいな感じだったので、このような感じにした
本当は検索機能とか付けたいんだけど、まだ全然出来てない感じ

需要ないのかあるのか分からないけど、こういった感じの作ったことなかったので勉強がてら作ってみたみたいな感じです

最後に

もし使ってみたいって方がいたらリポジトリをcloneして登録するライブラリを./tool/registerとかで登録してプルリクください
登録以外のプルリクでもいいです

gfxさんが作ってるの気になる: android-frontier/tiny-maven-repository · GitHub

ThinkPad Bluetoothキーボードを買った

買った

設定

keyremap4macbook

  • 変換とか無変換をそれぞれかな、英数にする

keyremap4macbook

  • Option_LをCommand
  • Ctrl_LをOption
  • 半角/全角をEsc

環境設定

参考

Bakusoku Iterations Tokyo 1に参加した #deploygate

Bakusoku Iterations Tokyo 1に参加してきた
内容的には開発サイクルの話だとかで面白かった
発表内容も面白かったけど本番は懇親会みたいな感じでピザとかビールとかが自動で出てきて最高だった
特に最高だったのが、いつもピザはドミノピザとかだったのになぜか見知らぬピザ屋さんので美味しかった
ピザの耳まで美味しかったし相当だった
これが無料とかヤバい

明日はGitHubの人とかが来てくれるイベントがある
GitHub & DeployGate Tokyo Meetup
また美味しいピザが出るのではと思っていて今から最高の気分

app道場 #3に参加した

app道場 #3に参加してきた!
http://atnd.org/events/50499
今回はGMOペパボさん主催でGMO Yoursで開催された
綺麗なオフィスで中にcafeとかあって最高な様相を呈してた

まとめは上の感じ
特に驚いた話が、CocoaPodsの更新がプルリクベースではなくtrunkというものを使って行われるように最近なったことや、CrashlyticsのEclipseプラグインが自動でjarを読み込んで組込んでくれる話だった
特にCrashlyticsは最高な感じだった

Androidのライブラリを簡単に公開出来る場が欲しい

Maven Centralに代わるAndroid Archive Networkが必要だ - Islands in the byte streamを読んで共感した、というか同じこと考えてた
Maven Centralにアップロードするのすごく大変で、ダルかった
最近の若者はダルいから、githubにaarとかjarを上げてる例がよくある
簡単に上げたいだけならこのgithubに上げる方法が良いと思ってる
だけど、実際には検索性に乏しかったりするし、gradleでライブラリをダウンロードしようとすると、ライブラリごとにurlを書くことになるのでurlがどんどん増えていく
Maven Centralから引っ張ってくるみたいにしたい欲求はある
ので、AndroidにもRubyでいうRubyGemsPerlでいうCPANiOSでいうcocoapodsみたいなのが欲しい!!!!!!!!!!!!!!! 作ろう!!!!!!!!!!!!!

追記

url増えてくから大変とか書いたけど、実際にはそんなにライブラリ使わないかもしれないから大変ではないかもしれない
でも今後問題になるのかもしれない
今特に問題に思ってるのは、ライブラリを検索して探せる場が無いって所と、簡単にアップロード出来ないって所

gradle-xcodePluginにプルリクした

openbakery/gradle-xcodePlugin · GitHubにプルリクした!
Support for DeployGate by henteko · Pull Request #63 · openbakery/gradle-xcodePlugin · GitHub

何したのか

Support for DeployGate!!!
gradle-xcodePluginだけでdeploygateにアップロード出来るようにした
便利
使い方とかは以下を見れば分かりそう
iPhoneアプリをGradleでビルドしてDeployGateで自動配布する方法の続き - Qiita

ハッカソン

http://www.lovelive-anime.jp/img/top/keyv5a.png
(http://www.lovelive-anime.jp/から引用)

この前の土曜日に、同期で集まってハッカソンするみたな感じのことをやっていたのだけど、そこでやること無かったからgradle-xcodePluginにDeployGate対応をした
そのハッカソン自体はラブライブ見ながら全員違うことやりながらモクモクするみたいな感じで、とにかくラブライブ最高だった