Perl脚本 自动获取Chrome最新版本

#!c:/perl/bin/perl.exe

use LWP::Simple;
#use LWP::Debug qw(+);
use warnings;
use strict;
use Data::Dumper;

my $new_throme_url = q(http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/LATEST);

my $use_proxy = 0;
if ( $use_proxy ) {
    #$ENV{HTTPS_PROXY}          = q(http://127.0.0.1:8080/);
    #$ENV{HTTPS_PROXY_USERNAME} = q(username);
    #$ENV{HTTPS_PROXY_PASSWORD} = q(passwd);
   
    use LWP::UserAgent;
    my $ua = LWP::UserAgent->new;
    $ua->timeout(10);
    $ua->agent('ReportsBot/1.01');
   
    #$ua->env_proxy;
   
    $ua->proxy(['http', 'ftp', 'https'], 'http://127.0.0.1:8080/');
    #$ua->credentials('127.0.0.1:8080', '域名称', 'username' => 'passwd');
   
    my $content = $ua->get($new_throme_url);
    die "Couldn't get it: $!" unless defined $content;
    print $content->status_line,"/n";
    my $new_chrome_version = $content->content;
    print '最新版本号为: ',$new_chrome_version,"/n" if ($content->status_line eq '200 OK');
   
    my $new_chrome_file = qq(http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/$new_chrome_version/chrome-win32.zip);
   
    #启动子进程下载文件,主进程监控文件大小,显示进度
    defined ( my $down_child_id = fork() ) or die "Fail to fork $!/n";
   
    my $down_file = qq(chrome-win32-$new_chrome_version.zip);
    my $tmp_file = qq($down_file-$down_child_id);
   
    if ($down_child_id) {#父进程
        print "这里是父进程! $$/n";
        print "下载临时文件为: $tmp_file/n";
       
        sleep 5;
       
        while ( -e $tmp_file ) {
            my $size = (-s $tmp_file);
            print "已经取得文件大小: $size/n";
            sleep 1;
        }
    } else { #子进程
        print "这里是子进程! $$/n";
        if ($ua->mirror($new_chrome_file, $down_file)) {
            print "下载最新版本Chrome成功: $down_file/n";
        }
    }
}
else {
    print '最新版本号: ';
    getprint($new_throme_url);
    print "/n";

    if (mirror($new_throme_url, 'lastversion') == RC_OK) {
        open VER,'lastversion' or die "打开版本文件失败: $!/n";
        my $new_chrome_version = <VER>;
        close VER or die "关闭版本文件失败: $!/n";
        unlink 'lastversion' or die "删除版本文件失败: $!/n";
       
        my $new_chrome_file = qq(http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/$new_chrome_version/chrome-win32.zip);
       
        #启动子进程下载文件,主进程监控文件大小,显示进度
        defined ( my $down_child_id = fork() ) or die "Fail to fork $!/n";
       
        my $down_file = qq(chrome-win32-$new_chrome_version.zip);
        my $tmp_file = qq($down_file-$down_child_id);
       
        if ($down_child_id) {#父进程
            print "这里是父进程! $$/n";
            print "下载临时文件为: $tmp_file/n";
           
            sleep 5;
           
            while ( -e $tmp_file ) {
                my $size = (-s $tmp_file);
                print "已经取得文件大小: $size bytes/n";
                sleep 1;
            }
        } else { #子进程
            print "这里是子进程! $$/n";
            if (mirror($new_chrome_file, $down_file) == RC_OK) {
                print "下载最新版本Chrome成功: $down_file/n";
            }
        }
    }else{
        print "下载版本文件失败!/n";
    }
}
my $a=<STDIN>;
exit 1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值