8
my $type = shift @ARGV;
9
if( $type =~ /^copy$/i ) {
12
if( $type =~ /^link$/i ) {
17
open (RPMOUT, "> filelist-rpm") or die;
27
($line =~ m/^R...:(.*)/) && print RPMOUT $1 . "\n";
28
($line =~ m/^..M.:(.*)/) && MakeDir( $1 );
29
($line =~ m/^.C..:(.*)/) && ($copy) && CopyFile( $1 );
30
($line =~ m/^.C..:(.*)/) && ($link) && LinkFile( $1 );
31
($line =~ m/^R...:(.*)/) && ChangeAttrs( $1 );
35
my ($src, $dst) = ParseCLine( shift );
40
$dst .= "/" if ! ($dst=~m|/$|);
47
open INPUT, "<", $src or goto out1;
48
open OUTPUT, ">", $dst or goto out2;
49
while(<INPUT>){ print OUTPUT $_ }
52
print "Installed File: $dst\n";
60
my ($src, $dst) = ParseCLine( shift );
64
$dst .= "/" if ! ($dst=~m|/$|);
71
or warn "Linking $src to $dst failed $!\n";
72
print "Installed File: $dst\n";
79
$line =~ m/^(.*?)\s+(.*?)$/;
89
my @words = split( /\s+/, $line );
90
foreach my $word (@words) {
91
if( $word =~ /^\%(.*)/ ) {
92
push @directives, $word;
97
return \@retval, \@directives;
101
#R-M-: %attr(0755,root,ali) /opt/ali
104
#$line =~ m/\%attr\((.{1,5}),(\w+),(\w+)\)\s+(.*)/;
105
my ($file_ref, $directive_ref) = ParseRLine( $line );
107
my $dir = $file_ref->[0];
111
or warn "Make Dir: -->$dir<-- failed $!\n";
113
print "Made Dir: $dir\n";
118
my (undef, undef, $uid, undef) = getpwnam( $name ) ;
119
$uid = defined($uid) ? $uid : -1;
125
my (undef, undef, $gid, undef) = getgrnam( $name ) ;
126
$gid = defined($gid) ? $gid : -1;
133
my ($file_ref, $directive_ref) = ParseRLine( $line );
134
my ($attr) = grep { /^\%attr/ } @$directive_ref;
135
$attr =~ m/\%attr\((.{1,5}),(\w+),(\w+)\)/;
139
my $file = $file_ref->[0];
141
my $uid = GetUID($owner);
142
my $gid = GetGID($group);
144
chown $uid, $gid, $file;
145
chmod oct($perms), $file;