1

私の友人は、perl で書かれた VMware スクリプトのアイデアを教えてくれました。彼は、-u.

問題は、どうすればそれができるのかわからないことです。インターネット経由でスクリプトを更新する方法について頭に浮かぶ唯一のことは、wget、Amazon S3 アカウント、または FTP サーバーです。

何かをする最も簡単な方法は何ですか?

- アップデート -

私は自分の質問を修正し、私が達成しようとしていることについてもっと考えていました.

私が作成しようとしているのは、スクリプトをホストするサーバーまたはサイトに対して単純なバージョン チェックを行う、迅速で汚いスクリプトです。どのオプションを使用できるかはわかりませんが、現在入手できるのは Dropbox と amazon S3 アカウントだけです。S3で何かできると思います。

4

1 に答える 1

3

これはテストされていない最初のドラフトにすぎませんが、次のようなアイデアが得られます。

use strict;
use warnings;
use Getopt::Std;  # for getopts
use LWP::Simple;  # for get

my %opt; getopts('u',%opt);

if ($opt{u}
&& -w $0
&& (my $newcontent = get("http://your.script.s/loca/tion"))
&& open(my $me, '<', $0))
{
    $/ = 0;
    my $currcontent = <$me>;
    close($me);
    if ($newcontent ne $currcontent)
    {
        warn "updating to latest version ...\n";
        if (open($me, '>', $0))
        {
           print $me $newcontent;
           close($me);
           exec $0, @ARGV;  # call it - if that's what you want to do
        }
    }
}

ネスティングをリファクタリングし、ifエラー処理を追加し、使用にもっと注意を払う$0など。

于 2011-03-31T07:35:18.543 に答える