#!/usr/bin/perl -w # Do a CPAN autobundle and archive it somewhere # Run from cron as the same user you run CPAN as (probably root) use strict; require 5.8.0; use Sys::Hostname; use CPAN; use CPAN::Config; use File::Copy; #------------Edit These # Where your Bundle gets copied to (use trailing slash) my $bundle_archive_dir = '/tmp/'; # user/group final Archive ownership my $change_ownership = 1; my $userid = 1000; my $groupid = 100; #------------Work my $sysname = hostname; my $local_bundle_home = "$CPAN::Config->{cpan_home}" . '/Bundle/'; my $holder; die &locked if -e "$CPAN::Config->{cpan_home}/.lock"; &bundlearchive; my $recent_bundle = $1 if $holder =~ /(?:Bundle\/)(Snapshot.*)/; my $finaldestination = $bundle_archive_dir . $sysname . '-' . $recen +t_bundle; copy("$local_bundle_home$recent_bundle","$finaldestination") or die "AutoBundle copy failed: $!"; chown $userid, $groupid, $finaldestination if $change_ownership > 0; #------------Subs sub bundlearchive { open local(*STDOUT), '>', \$holder; autobundle; } sub locked { qx!logger Oops - $0 found a CPAN lockfile - the script is quitting!; } exit $?;
In reply to automatic-AutoBundle.pl by hsinclai
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |