non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

go installを知ったのでgopheronを対応させた

こんばんは。このところ、残業で遅く帰ることが多く、ワンオペ嫌いの妻は子供達に洗濯物干しの手伝いをさせています。@kjunichiです。

背景

go getはよく使うが、go installをすると、実行したディレクトリの.goファイルをビルドして、 $GOPATH/binにインストールしてくれると言うのを最近知ったorz。

問題

gopheronでgo installを試すと、$GOPATH/binにgopheronコマンドをインストールできた。

しかし、起動すると「Unable to find Electron app」

f:id:kjw_junichi:20190724224738p:plain

というエラーになる。これはElectronが文句を言っている模様。

現状のgopheronでもgoの実行ファイルからインストールされたelectronを実行しているが go installでインストール後に任意のディレクトリからコマンドを実行するにはまだ対応が不足している模様。

gopheronをgo installして動くように対応するには

GOPATHを基準にパスを指定する

とりあえず、自分の環境でGOPATHを未定義、もしくはパスが1つのみの環境に対応するように割り切り、作業を進めた。

GOPATHが定義されている場合、macOSLinuxでは

$GOPATH/go/src/github.com/kjunichi/gopheron

にgopheronのコードがgo getすると入れられる。

Windowsの場合は

%GOPATH%/src/github.com/kjunichi/gopheron

となる。

これらを基準となるフォルダへのパスを設定することにした。

Goでの具体的な実装は

macOSLinuxの場合GOPATHが未定義の場合、

$HOME/go/src/github.com/kjunichi/gopheron

にcdすることで対応した。

windowsの場合は、GOPATHが未定義の場合、環境変数%USERPROFILE%をつかって、

%USERPROFILE%/go/src/github.com/kjunichi/gopheron

環境変数が未定義かを判定するには

以下のようにlen関数を使うことで対応した。

goPath := os.Getenv("GOPATH")
if len(goPath) == 0 {
        if runtime.GOOS == "windows" {
            goPath = os.Getenv("USERPROFILE") + "/go"
        } else {
            goPath = os.Getenv("HOME") + "/go"
        }
}

goでカレントディレクトリを移動するには

rutimeパッケージをインポートして、

import (
    "runtime"
)

os.Chdir(ディレクトリパス)で移動できる。

gopheronPath = getGopath() + "/src/github.com/kjunichi/gopheron"
os.Chdir(gopheronPath)

成果物

github.com

まとめ

goでの環境変数の取得、空文字列の判定ができるようになった。 あと、カレントディレクトリの移動方法も学んだ

関連記事

14年前の記事

13年前の記事

11年前の記事

2019年のAmazonプライムデーで買ったものメモ

こんばんは、先日お泊まり保育の時から次男が微熱が続き実家で過ごしていた@kjunichiです。

背景

12コアのRyzen 9 3900Xの購入を奥さんに睨まれており、出来ずにいる。

購入したもの

直前にビックカメラでECナビのポイント稼ぎも兼ねて購入したWindowsでのBoot campで使えるUSB2.0規格のメモリー

2019年の8コアMacbook Proのキーボードには必需品かも

長男のPCにつなげていた激安キーボードが故障したので、今後小学校でPCに触れる場合、日本語キーボードの方が 良いかもと思い、日本語配列の安めのキーボードを買ったら、直後にもっと安いモデルを紹介されるなど。

勉強会にも持参している電源タップが接触不良気味なので、新しいものを購入。

まとめ

去年は、直後にマレーシアへの海外旅行が控えていたので、それに向けてお得に買い物できたが、 今年は、微妙だった。。

関連記事

9年前の記事

6年前の記事

2019年第2四半期振り返り

こんばんは。平日は子供達のゲームに付き合わない代わりに、休日は一緒にゲームすることになっている@kjunichiです。

全体

よかった点

  • 過去のブログ記事のYoutube化を継続できている。
  • macOSではNVEncの代わりにvideotoolboxなるAPIでHWエンコできることをしってこれを実践。
  • 2012年モデルのMacBook Proから最新の2019年モデルにアップグレードできた。
  • ルンバで自走ロボットができたw。

課題

  • Goでのチャネル関連が分かっていないので、勉強したい。
  • UE4でシーナリーアニメーターっぽいやつを作りたい
  • UE4でネット対戦のFPSを作りたい。
  • gopheronのプラグインシステムが構想でぐるぐる回って進んでない。
  • 知育アプリの開発ができてない。

4月

Ryzen 5 2400Gでコスパ重視のPCを次男向けに自作。 これには後日談があって、夢中で久しぶりの自作PCに取り組んでいたら、事前に申し込んでいた 子供たちの習い事の展覧会が終わっていたという。

散らかり放題の我が家で不安だったが、3万円を切った価格なら失敗しても実家に持っていけば良いか。と 購入したところ、大変役になっている。PCやスマホのコード以外、特に事前に片付けもしなくても、何とか ルンバが頑張って掃除してくれる。これは、俺のQOL向上に大変よい買い物だった。

また、電子工作もできるのもポイント!ArduinoRaspberry Piから制御できて子供たちと盛り上がった。

5月

前半はHerokuで運用していたボットを治すなど。 後半はついに2012年モデルから2019年版の8コアのMacBook Proにアップグレードした! 普段の買い物は奥さん管理下の航空会社のカードでポイントをためているが、MacBook Proは自腹なので、 ソニー銀行のカードでデビッド決済して、キャッシュバック。上限20万までなのと、貧乏すぎて残高詰めないから、 最低ランクの還元率で泣いた。

6月

MacBook Pro買ってしまったので、周辺環境を整備すべく散財w バックアップ用のHDDやiPhone用にワイヤレス充電器など

MacBook Proを生かすべく何か作らねばという強迫観念にかられるも、それにみあった進捗はでなかったw PASMOの残高表示はそこそこ便利だと自負してるが。

関連記事

7年前の記事

1年前の記事