30分プログラム日記ジェレネータ

30分プログラム、その93。30分プログラムの日記のテンプレート。
いい加減、毎日「30分プログラム、そのX」と書くのが面倒になってきたので。ただ、この今日の日記が自己言及っぽくなって、結構混乱してる。

使い方

$ perl croquis.pl hoge.pl

ソースコード

#! /usr/bin/perl
# -*- mode:perl; coding:utf-8 -*-
#
# croquis.pl -
#
# Copyright(C) 2007 by mzp
# Author: MIZUNO Hiroki <hiroki1124@gmail.com> 
# http://mzp.sakura.ne.jp/
#
# Timestamp: 2007/07/28 22:18:11
#
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
#

use strict;
use warnings;

# get time
my ($summer,$day,$wday,$year,$month,$mday,@time) = reverse localtime time;
$year+=1900;
$month++;

my $timestamp = sprintf("%4d-%02d-%02d:",$year,$month,$mday);
my $count = $day-115; # magic

# get filetype
my %type = (qr/\.rb\Z/=>'Ruby',
	    qr/\.pl\Z/=>'Perl',
	    qr/\.py\Z/=>'Python',
	    qr/\.scm\Z/=>'Scheme',
	    qr/\.js\Z/=>'Javascript',
	    qr/\.hs\Z/=>'Haskell');

my $file = shift @ARGV;
my ($lang,$type);
foreach(keys %type){
    if($file =~ /$_/){
	$lang = $type{$_};
	$type = lc $lang;
    }
}

# file content
open(FILE,$file);
my @content = join('',<FILE>);


# print
print <<"EOF";
$timestamp
*[$lang][30分プログラム]
30分プログラム、その$count

**使い方
 >||
\$
 ||<

**ソースコード
 >|$type|
@content
 ||<

**参考
- [http://d.hatena.ne.jp/mzp/19000101/list:title=過去の30分プログラム]
EOF