2016-11-10
gist に雑に投げるスクリプト
upload_gist.pl upload_shitai_file
みたいな感じで、gist に雑にアップロードするスクリプトを書いたらとても便利だったので、ここに記す。
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use WebService::GitHub;
use Config::Pit;
use File::Slurp;
use Encode;
use File::Basename;
my $filename = $ARGV[0];
if ( !defined $filename || !-e $filename ) {
die "ファイル名が正しくありません\n";
}
my $config = pit_get('ghe');
my $content = read_file($filename);
$filename = basename($filename); #github に渡すファイル名はフルパスや相対パスはダメ
my $gh = WebService::GitHub->new(
token => $config->{gist},
base_uri => 'https://haisya.no.ghe.co.jp/api/v3',
);
$gh->post('/gists', {
public => "true",
files => {
$filename => {
content => decode_utf8($content),
}
}
});
WebService::GitHub ってのは拙作の GitHub API の薄いラッパーで、無いなら無いで別に困らない(curl とかでも投げようと思えば github の API は投げれるので)けどあるとシンプルに書けるので僕は気に入っています。パスワードというか、API のトークンをそのままスクリプトに書くのは怖いので、 Config::Pit を使ってます。