#!/usr/bin/perl # # Copyright 2006-2008 BitHive Ltd. All Rights Reserved. # This code cannot be redistributed without permission from www.bit-hive.com. # # # 更新Ping送信スクリプト # use strict; use warnings; use utf8; use Encode; use File::Basename; use Getopt::Std; use IO::Handle; use POSIX qw(setsid); use FindBin; use lib ("$FindBin::Bin/lib", "$FindBin::Bin/exlib"); use BlogCMS::WeblogPing; use BlogCMS::DB; sub usage { my ($msg) = @_; my $cmd = basename($0); print STDERR "$msg\n\n" if defined $msg; print STDERR < -f: Specify blog ids by file. USAGE exit 1; } my $AutoRemove; my $BlogID; my $Filename; my $Daemonize; { my %args; getopts("ab:df:h", \%args) or usage; if (defined $args{h}) { usage;} if (defined $args{a}) { $AutoRemove = 1; } if (defined $args{b}) { $BlogID = int $args{b}; } if (defined $args{f}) { $Filename = $args{f}; } if (defined $args{d}) { $Daemonize = 1; } (defined $args{b} || defined $args{f}) or usage 'specify -b or -f option.'; } # # Start Up # if ($Daemonize) { if (fork) {exit;} setsid(); for my $h (*STDIN, *STDOUT, *STDERR) { open($h, "+<", "/dev/null") or die "Can't reopen $h to /dev/null\n"; } } logging("Start sending updateping. ($$)"); my $ret; if (defined $BlogID) { $ret = send_weblog_ping $BlogID; } else { open my $fh, "<", $Filename or die "Can't open file."; my $line = <$fh>; close $fh; chomp $line; my @IDs = split /,/, $line; foreach my $blog_id (@IDs) { send_weblog_ping $blog_id; } unlink $Filename if $AutoRemove; $ret = 1; } logging("Finished sending updateping. ($$)"); exit($ret ? 0 : 1);