App::RunCron , fatpack して一枚のスクリプトで扱う
songmu さんが作った App::RunCron - making wrapper script for crontab - metacpan.org をどうやって使うか考えて、ひとまず
#!/usr/bin/env perl use strict; use warnings; use App::RunCron; use Getopt::Long; # for handling double dash of @ARGV GetOptions(); App::RunCron->new( command => [@ARGV], error_reporter => sub { my $runner = shift; # stdout print STDOUT $runner->report; # post to irc ... }, )->run;
こんな感じのスクリプトを fatpack して一枚で扱えるようにして使ってみることにした。設定 yaml のこととかは全く考えずに cronlog とおなじ感覚で + stdout に吐く以外の事を足して使います。
あと ---
のハンドリングを getopt::long に任せました。
perl で書いた irc bot を go に移植してみて
気が向いたので昔 perl で書いた irc bot を go に移植してみた
https://github.com/soh335/github-issue-ircbot
思ったこと
- github.com/thoj/go-ircevent を使ってみた
- 起動が早い
perl のプログラムを go に移植してみて
気が向いたので fujiwara さんが以前作った Urume のクライアントである mezasi という perl で書かれたものを go に移植してみた。
https://github.com/soh335/go-mezasi
以下感想
- サブコマンドの仕組みは github.com/gonuts/commander と github.com/gonuts/flag を使った。
- useragent とかを固定化したいとなると下みたいに http.Client の簡単なラッパーを書くのが良い?
package main import ( "io" "net" "net/http" "net/url" "time" ) type Client struct { UserAgent string client *http.Client EndPoint *url.URL } func NewClient(endpoint *url.URL) *Client { return &Client{ UserAgent: "Mezasi/0.1", client: &http.Client{ Transport: &http.Transport{ Dial: func(netw, addr string) (net.Conn, error) { return net.DialTimeout(netw, addr, time.Duration(time.Second*300)) }, }, }, EndPoint: endpoint, } } func (c *Client) Do(req *http.Request) (*http.Response, error) { return c.client.Do(req) } func (c *Client) NewRequest(method string, pathStr string, body io.Reader) (*http.Request, error) { urlPath, err := url.Parse(pathStr) if err != nil { return nil, err } u := c.EndPoint.ResolveReference(urlPath) req, err := http.NewRequest(method, u.String(), body) if err != nil { return nil, err } req.Header.Add("User-Agent", c.UserAgent) return req, nil }
こんな感じでタイムアウトの処理と、request object を作るメソッド、実行するメソッドを用意した。 request object を作るときに endpoint をもとに url を作ったり、 user-agent の追加をしたりした。
- 起動が早い
beyond two souls
- BEYOND: Two Souls | プレイステーション® オフィシャルサイト
- これは「プレイできるハリウッド映画」だ。映画とゲームの境界を軽々と超えたPS3ソフト『BEYOND: Two Souls』 : ギズモード・ジャパン
BEYOND : Two Souls (初回生産限定版) (初回封入特典 追加シーン・オリジナルサウンドトラックなど豪華ダウンロードコンテンツ 同梱)
- 出版社/メーカー: ソニー・コンピュータエンタテインメント
- 発売日: 2013/10/17
- メディア: Video Game
- この商品を含むブログ (13件) を見る
面白かった。今までやったゲームで一番綺麗で、ハラハラしながら進められた。戦争の描写とかもあるのでそこはちょっと辛い感じだった。
アクションが下手なので簡単なモードのほうで進めた。
ghh という github repository hook を操作するのを書いた
昔に github の irc hook で issue も hook してもらう - @soh335 memo というのを書いた。
songmu さんにはわかりづらかったらしい。
気が向いたので golang で https://github.com/soh335/ghh というのを書いた。 cui で操作して、create/edit の際は editor を立ち上げる。 editor の内容は toml で書かれた設定ファイルになっていて、反映されていない設定はコメントアウトされているので、必用があればコメントアウトを解除すると反映される。
( github とのやりとりは json で行われるが、コメントアウトで制御したかったのでエディタ上では toml を使ってみることにした)
喰う寝るふたり 住むふたり 3
- 作者: 日暮キノコ
- 出版社/メーカー: 徳間書店
- 発売日: 2014/02/20
- メディア: コミック
- この商品を含むブログ (20件) を見る