ConoHa CLI 開発日誌 vol.8
- POST
ConoHa-CLIの進捗報告。 まだまだやりたいことには届いてないから引き続き考えていくよ!
現状 Golangのパッケージに関して 複数環境のリリースに関して SSHに関して Golangのパッケージに関して Node.jsのrequireは1ファイル内でmodule.exportsに記載したものだけ返すが、 Golangのパッケージは1ディレクトリを1パッケージとして、全角英字で始まる関数やインスタンス等が全て返ってくる。 抽象化は1度しか行えないのでしっかりとオブジェクト指向的な設計が必要になる。
今回Go初挑戦ということで適当に作ったパッケージがあまり使い物にならないので見直す必要が出てきた。 現状の問題点としては、conf.Read()関数がconfigファイルを返す為、spec.tomlを操ろうと思ったらRead関数が使用済みの為に困ってしまう。
一旦はこの2つにリファクタリングしよう。
config endpoints 書籍を購入して勉強しているのだが、ディレクトリによるパッケージはサブディレクトリを切ればネスト出来るのでNode.js的な管理方法も十分可能に思える。 この辺を視野にいれて調査していこう。
参考サイト:
パッケージについて - はじめてのGo言語 Go言語入門 複数環境のリリースに関して GitHubではタグを打った後、ファイルをアップロードすることでバイナリファイルをGitHub上に設置出来るらしい。 64bitのWindows、Mac、Linuxの3つくらいは上げておきたいから勉強必須。 ゆくゆくはMakefileかなんかで一撃でリリース出来るようにしたい。
参考サイト:
Go のクロスコンパイル環境構築 - Qiita privateなGitHub Releaseページのリリース物をcurl+jqでダウンロードするワンライナー - Qiita GitHubのリリース機能を使う - Qiita Creating Releases - GitHub Help Release Your Software SSHに関して GolangにはSSHパッケージがデフォルトで用意されており、osの標準入力/出力につなげてやると簡単に実装出来るとのこと。 これによりWindows環境でも(多分)動作するSSHになりうる。
でもメインが電車によるSSH接続なのでMoshにも対応したいなあ。。。 というわけで、もう少し調査した後に再開という形になる。
参考サイト:
Windows からも ssh でリモートコマンド実行したい、それ golang で出来るよ artyom/mosh - GitHub StanfordSNR/guardian-agent - GitHub