chikuchikugonzalezの雑記帳

趣味とか日記とかメモとか(∩゚д゚)

ssh-keygenを使わずにOpenSSHキーペアを作りたかった

結果

Goで作りました。
bitbucket.org

目的とか

もともとはWindowsでOpenSSHキーを作るのに、わざわざPuTTYGenを使うのはちょっとなー、でもCygwin入れたくないしなー、みたいなことを考えてました。*1
そんなときに、Goの非標準パッケージに golang.org/x/crypto/ssh があるのに気がついてしまいまして。

そうだ、Goで作ればWindowsでも動くぞ…!

とか考えて作りました。

使い方

  1. go get する*2
  2. makey
  3. ✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
C:>go get bitbucket.org/chiku2gonzalez/makey
C:>makey -output hello
C:>dir
2016/05/26  23:08             1,766 hello
2016/05/26  23:08               380 hello.pub

makey -h とかするとオプション出てきます。-outputでファイル名を指定ない場合は id_rsa になるので注意してください。
というのも、保存処理は上書き (確認なし) なので。

やり残し

  • フィンガープリントしたい
  • Randomart imageとか出したい
  • DSAって対応するべきだろか
  • ssh-keygenにある以下の機能はあったほうがいいよね
    • ファイル名が指定されなかった場合に対話式で聞く
    • 上書き確認
    • ログ出さなくていいよモード (-quiet)

*1:特にMercurialSSH接続するときに、ssh-keygenがなくて困ったというのが発端。Gitの場合はGit Bash経由でssh-keygenが使えるから問題にならないはず

*2:ロスコンパイル環境がないのでバイナリは用意してないです

適当なGo言語用ログライブラリのようなものを作った

LOGO is LOGger for GO

chiku2gonzalez / logo — Bitbucket

動機

モンハンやってる合間に細々とツール作成しているわけですが、そんな中でログライブラリほしいなー、って思うことがあるんです。
ただ最近は、どのロガーもちょっとしたツールには機能過剰だなーと感じてました。
とはいえ、標準のロガーだとそれはそれでデバッグログとか出し分けができないやつなので、どうしたもんかと思ってたんです。

で、仕方なく作りました。
機能的には標準のロガーにデバッグログの出し分けを増やした程度のものです。

使い方

標準のロガーと併用する前提で、こんな風になります。

package main

import "fmt"
import "log"
import "os"
import "bitbucket.org/chiku2gonzalez/logo"

func main() {
	logger := Wrap(log.New(os.Stdout, "[LOGO]", 0))

	fmt.Fprintf(os.Stdout, "<<BASIC>>\n")
	logger.SetMode(BASIC)
	logger.Println("(・∀・)")
	logger.Debugln("(`・ω・´)")
	fmt.Fprintf(os.Stdout, "\n")

	fmt.Fprintf(os.Stdout, "<<DEBUG>>\n")
	logger.SetMode(DEBUG)
	logger.Println("( ˘ω˘ )")
	logger.Debugln("( ゚Д゚)")
	fmt.Fprintf(os.Stdout, "\n")

	fmt.Fprintf(os.Stdout, "<<QUIET>>\n")
	logger.SetMode(QUIET)
	logger.Println("('ω')")
	logger.Debugln("(・ω・)")
	fmt.Fprintf(os.Stdout, "\n")

	fmt.Fprintf(os.Stdout, "<<END>>\n")
}

cfgo-driverは要らなかった

chiku2gonzalez.hatenablog.com

前回の記事 ↑ で ( ・´ー・`)ドヤァ みたいに書きましたが別に分ける意味なかったのでそのうち再統合しておきます。

やっときました。そのうち cfgo-driver を消しますね

2016年始まりましたね

あけましておめでとうございます。今年もchikuchikugonzalezをよろしくお願いします。

などとあいさつを済ませたところで本題です。
昨年の最後のエントリで適当に作ったライブラリを紹介しましたが、その片方の cfgo でこんなことを言ってました。

そのうち一度読み込んだファイルはは読み込まないっていう機能を持った構造体を追加しようと思ってます。

http://chiku2gonzalez.hatenablog.com/entry/2015/12/28/235253

で、それを作ってるところで、さぁテスト書くかって思ったときに一つ問題にぶち当たりました。っていうか前にもぶち当たったのを忘れてました。
それは

サブパッケージ内から親パッケージを見ている場合に、サブパッケージを利用するテストを親パッケージに置けない

です。いや当たり前なんですが今回はまともなテストが書けないっていう感じになりました。

なので、サブパッケージのリポジトリを分割しました。

chiku2gonzalez / cfgo-driver — Bitbucket

ただ分けるのもあれだったので TOML 対応もしておきました。
✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌

適当に作ったGo用ライブラリ置いておきますね

chiku2gonzalez / xdgo — Bitbucket

XDG Base Directory Specification のディレクトリから設定を読み込むためのライブラリ。
ってもパスしか返さないので読み込みは使う側でどうにかしてください。

動機としては、ひっそりと作ってるツールの設定ファイルをどこに置くか悩んでるときに NeoVim が上の仕様で読み込むようにしたよー、って言う記事を見たのが発端です。
その中で Windows は AppData から、ていうのが書いてあったので「じゃぁそれで対応するか」ってなりました。

chiku2gonzalez / cfgo — Bitbucket

拡張子から適当にフォーマットを判別して Unmarshal をするためのライブラリ。
いやね、ひっそり作ってるツールだとルート設定を XML にしておいて、その下にぶら下がる設定は XML/YAML/JSON/TOML を選べるようにしよう、とか張り切ったせいで設定の読み込みがつらくなりました。
なのでせめてフォーマット識別くらいは外出ししようとしたのがこちらになります。

そのうち一度読み込んだファイルはは読み込まないっていう機能を持った構造体を追加しようと思ってます。

モンスターハンタークロスの村クエが一段落しました

今はHR上げるために集会所を進めようとしてるところ。

モンスターハンタークロス

モンスターハンタークロス

続きを読む