サーバーサイド側のコード書いている人です。Railsを書いて、たまにJavaScriptやGolangをさわったりするぐらい。twitterの話みなさんtwitterしてますよね。昼夜問わず変な人がいっぱいいてとても有意義で無意義です。みなさん(おそらく)エンジニアだと思うので、terminal上でコマンドを叩いたときに、よくわからんエラーを吐いてエラったときの鬱憤をネットの海に叫びたい気持ちが多々あると思います。いうものを先日リリースしました。github.comいわゆるGo製のCLItwitterクライアントなんですが、現状だとつぶやことしかできません。(というかユースケースがそれしかありません)プログラムを書いていて適当に愚痴りたいときに、ブラウザやクライアントに戻って呟いたりしちゃうと、うっかり変なつぶやきが目に止まって時間を取られてしまったりしまいがちですよね。そんな人のために求められているのが、このgotwiです。つぶやく機能しかありません。(replyのshowぐらいは実装予定)terminal上で動作できて、クロスコンパイル可能なのでどこにでもbinaryを配布することができます。以前も似たようなCLIクライアントをThorを使ってRubyで実装していたのですが、アクセストークンの扱いや、成果物のポータビリティがいまいちだったりで、そのコードを書いたPC上ぐらいでしか使用していませんでした。ところが、Goで書いたことによってアクセストークンをgo-bindataで埋め込みつつ、任意環境で実行可能なbinaryに吐き出すことが可能になったので、個人持ちのPCから任意のEC2、どこでも簡単に動かすことができます。今回はその中でも便利だったgo-bindataを使った話をしたいと思います。go-bindatago-bindataは、任意のdataをビルドして、dataをbinaryに変換しGoのコードに埋め込みアクセスできるようなgoのソースを生成してくれるライブラリです。-hで、問題なければgo-bindataコマンドが使えるようになっています。settings.sample.tomlこのsettings.local.tomlをbuildするbinaryに含めることによってアクセストークンなどの秘匿情報を実行binaryに含めてしまうことができます。Tokenを取得するようにしてください。Developers.tomlとは、yamlのような設定記述言語で、yamlより色々とシンプルな点や、Goのサポートが厚いことからよくGo界隈では使われています。settings.local.tomlとすることで、settings.local.tomlの中身が圧縮してbinaryに変換され、アクセス可能なメソッドの生えているbindata.goが生成されていると思います。あとは、以下のように、Asset("#{ファイル名}")とすることで、binaryに埋め込んだ文字列やその他のリソースを読み込むことが可能です。fmt.Print(string(data))}debug時などに注意が必要なのは、data本体はbindata.goに含まれているので、実行時にbindata.goを含める必要があります。TWITTER_ACCESS_SECRET"gotwiでは、このようにしてアクセストークンなどをbinaryに埋め込んでいるので、あとは任意の環境にビルドしたbinaryを、実行したいサーバーに配置することで、どこでも実行することが可能になります。gotwiのクロスコンパイル様々な環境で動かすためには、build時に$GOOS,$GOARCHを指定する必要があります。各環境変数に指定できるものは下記を参考にしてください。Language指定なしでbuildをした場合は、build時の環境が参照されるようになります。Linuxでamd64な環境へのbuildは以下のようになります。"Hello!"が投稿その他にも、build時には任意のオプションをつけられるので、公式のドキュメントを参照すると良いです。Language注意点このbinaryが流出してしまうと、それこそ誰でもアクセストークンの所有者として呟けてしまうので、管理には気をつけてください。go-bindataでビルドしたbindata.goの時点では、Goのソースに圧縮されたbyte列が入っているだけなので、ちょっと頑張ればアクセストークンを復号できるんじゃないかと思います(それこそ無圧縮とかにすると簡単に)。.gitignoreしましょう。まとめどこでも実行可能な自分が呟けるbinaryを吐き出せる、gotwiを作りました。使い始めて一ヶ月くらいですが、なかなか快適です。さんの「Elixir環境構築にて暗号化でエラーにならないために」です。月別アーカイブはてなブログをはじめよう!miyachikさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。