我想用帝国API来确定某个文件是否被发布到帝国的现有目标系统之一9.2.3。
尚未出版的文件(仅限于DEV)不应予以考虑。
发布于 2014-09-24 14:27:06
从帝国9号开始,你就可以通过Site::MetaDir获得信息
#!/usr/local/bin/perl
BEGIN {
unshift @INC, $0 =~ /(.*)[\\\/]/
? "$1/../modules/core"
: '../modules/core';
require Imperia::Core::ScriptEnv;
Imperia::Core::ScriptEnv->bootstrap;
}
use strict;
use Imperia;
use Site::MetaDir;
use Data::Dumper;
my $file = "/foo/index.html";
my $MetaDirDev = Site::MetaDir->new();
my $targets = $MetaDirDev->getTargets();
my $metainfoDev = $MetaDirDev->getMeta($file);
print "DEV : modification_date = " . $metainfoDev->getValues('__imperia_modified') . "\n";
foreach my $target (@$targets) {
next if $target eq 'DEV';
my $MetaDirLive = Site::MetaDir->new($target);
my $metainfoLive = $MetaDirLive->getMeta($file);
if ( defined($metainfoLive) ) {
print "$target : modification_date = " . $metainfoDev->getValues('__imperia_modified') . "\n";
} else {
print "file $file is not on $target \n";
}
}https://stackoverflow.com/questions/26019444
复制相似问题