ROLLING OYAJI

mbeef 応援ページ(マルハゲドンビフ(mbeef)を自分好みに使うための外部プログラムを作ろう!)

TKS君のマルハゲ丼ビフを応援するページです。

TKS君の作成したビフは、メイル到着のタイミングで外部プログラムが起動できる仕掛けになっています。
そこで、私は主にPerlでスクリプトを作り、自分好みにマルハゲ丼ビフを使おうとしています。



スクリプト一覧


ルートウィンドウをフラッシュ

メイルが到着したらルートウィンドウをフラッシュさせる。

#!/usr/bin/perl
# Hey emacs! This is a -*-Perl-*- source file.

# do not buffer STDIN STDOUT
$tmpHandle=select STDOUT;$| = 1;select $tmpHandle;
$tmpHandle=select STDERR;$| = 1;select $tmpHandle;

# command and parameters
$XSETROOT='/usr/bin/X11/xsetroot';
$DISPLAY='penguin:0.0';

# flush desktop
@cmd=(
      "$XSETROOT -solid black  -display $DISPLAY",
      "$XSETROOT -solid white  -display $DISPLAY",
      "$XSETROOT -solid blue   -display $DISPLAY",
      "$XSETROOT -solid yellow -display $DISPLAY",
      "$XSETROOT -solid green  -display $DISPLAY",
      "$XSETROOT -solid red    -display $DISPLAY",
      "$XSETROOT               -display $DISPLAY"
      );

$i=scalar(@cmd);
for($l=0;$l<2;$l++){
    for($n=0;$n<$i;$n++){
        system($cmd[$n]);
    }
}

1;


ファイルにアペンドしていく


#!/usr/bin/perl
# Hey mule! This is a -*-Perl-*- source file.

my($MBF_LOGFILE)="/tmp/mbeef.ext1.log";

# do not buffer STDIN STDOUT
$tmpHandle=select STDOUT;$| = 1;select $tmpHandle;
$tmpHandle=select STDERR;$| = 1;select $tmpHandle;

sub mbfextMain {
    mbfextOpenLog();
    mbfextAppendLog("[mbeef.ext1][START]====================\n");
    my($s)="";
    while($s=<STDIN>){
        mbfextAppendLog($s);
    }
    mbfextAppendLog("[mbeef.ext1][END]====================\n");
    mbfextCloseLog();
}

sub mbfextOpenLog {
    open(LOGF,">> $MBF_LOGFILE");
}

sub mbfextAppendLog {
    my(@p)=@_;
    my($s)="";
    foreach $s (@p){
        print LOGF $s;
        #print LOGF "\n";
    }
}

sub mbfextCloseLog {
    close(LOGF);
}

mbfextMain();