tkuchikiの日記

新ブログ https://blog.tkuchiki.net

golang

Github Webhook を受けて任意のスクリプトを実行するツール

ghooks-cmd-runner という、 Github の Webhook を受けて任意のスクリプトを実行する Go 製のツールを書きました。 Installation https://github.com/tkuchiki/ghooks-cmd-runner/releases にバイナリがあるので、ダウンロードして解答してください。 Usage …

時刻文字列をいい感じに parse する Go の package

parsetime という時刻文字列をいい感じに parse する Go のライブラリを書きました。 Example 使用例です。 package main import ( "fmt" "github.com/tkuchiki/parsetime" "log" ) func main() { p, err := parsetime.NewParseTime() if err != nil { log.F…

mackerel-plugin-rack-stats を例にした mackerel agent plugin の作り方

この記事は、Mackerel Advent Calendar 2015 16日目の記事です。 mackerel-agent-plugins には様々な plugin がありますが、無い場合は自作する必要がありますよね。 ということで、mackerel-plugin-rack-stats を例に mackerel agent plugin の作り方を紹介…

/etc/shadow の hash を生成するコマンドを作りました

perl, php, python の標準モジュールで /etc/shadow の hash を生成する方法 - tkuchikiの日記 で、/etc/shadow の hash を生成する方法を書きましたが、 どの環境でも同じ方法で出来たら楽だと思いましたので、 https://github.com/tkuchiki/encrypt-pw を…

AWS に SSL 証明書をアップロードしたりするコマンドを作りました

aws iam list-server-certificates aws iam upload-server-certificate aws iam update-server-certificate aws iam delete-server-certificate 相当の処理を行う、 https://github.com/tkuchiki/iam-server-cert を作りました。 実行例は、github の README…

golang の spec ファイル

執筆時の go の最新安定版は1.5.1 です。 rpm をインストールすると、 /usr/local/go /usr/bin/go (/usr/local/go/bin/go の symlink) /usr/bin/gofmt (/usr/local/go/bin/gofmt の symlink) /usr/bin/godoc (/usr/local/go/bin/godoc の symlink) をインス…

gaurun の spec ファイル

github.com の spec ファイルを書きました。 rpm をインストールすると、 /usr/bin/gaurun /usr/bin/gaurun_recover をインストールできます。 golang を rpm で入れていない場合は、BuildRequires: golang を削除してください。 v0.4.0 の時点では gopkg.in…

LTSV 形式の Web サーバのアクセスログを集計するツールを作りました

LTSV 形式の Web サーバのアクセスログを集計する、 tkuchiki/alp · GitHub を作成しました。 Install https://github.com/tkuchiki/alp/releases から各 OS 用のバイナリを取得できます。 Linux 以外では動作確認していませんが、おそらく動作すると思いま…

Golang で filepath.Abs に ~(ホームディレクトリ) を指定した時にカレントワーキングディレクトリが先頭についてしまう

検証した環境は以下のとおりです。 $ go version go version go1.4.2 linux/amd64 $ whoami tkuchiki $ touch ~/testfile $ cd /tmp した状態で、 // main.go package main import ( "fmt" "path/filepath" ) func main() { abspath, _ := filepath.Abs("~/t…

golang で外部コマンドを実行して標準出力を取得する

執筆時に使用した go version は、go1.3 です。golang で外部コマンドを実行して、 標準出力の結果を受け取る方法です。 Go Playground では試すことができませんのでご注意ください。※追記1id:mattn さんにご指摘いただいた、Cmd.Output の例を追記しました…

Go の http.Get で証明書エラーが出るURL にリクエストを送ってもエラーが出ないようにする

検証した環境は Go 1.3 です。http.Get, Post で、SSL 証明書エラーがでる URL にリクエストを送ると、 以下の様なエラーが出力されます。 2014/07/24 09:36:00 Post https://127.0.0.1: x509: cannot validate certificate for 127.0.0.1 because it doesn'…