123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/usr/bin/env sh
- #
- # inventory.sh
- #
- # Originally written by Ben Lindstrom, modified by Darren Tucker to use perl
- # This file is placed into the public domain.
- #
- # This will produce an AIX package inventory file, which looks like:
- #
- # /usr/local/bin:
- # class=apply,inventory,openssh
- # owner=root
- # group=system
- # mode=755
- # type=DIRECTORY
- # /usr/local/bin/slogin:
- # class=apply,inventory,openssh
- # owner=root
- # group=system
- # mode=777
- # type=SYMLINK
- # target=ssh
- # /usr/local/share/Ssh.bin:
- # class=apply,inventory,openssh
- # owner=root
- # group=system
- # mode=644
- # type=FILE
- # size=VOLATILE
- # checksum=VOLATILE
- find . ! -name . -print | perl -ne '{
- chomp;
- if ( -l $_ ) {
- ($dev,$ino,$mod,$nl,$uid,$gid,$rdev,$sz,$at,$mt,$ct,$bsz,$blk)=lstat;
- } else {
- ($dev,$ino,$mod,$nl,$uid,$gid,$rdev,$sz,$at,$mt,$ct,$bsz,$blk)=stat;
- }
- # Start to display inventory information
- $name = $_;
- $name =~ s|^.||; # Strip leading dot from path
- print "$name:\n";
- print "\tclass=apply,inventory,openssh\n";
- print "\towner=root\n";
- print "\tgroup=system\n";
- printf "\tmode=%lo\n", $mod & 07777; # Mask perm bits
-
- if ( -l $_ ) {
- # Entry is SymLink
- print "\ttype=SYMLINK\n";
- printf "\ttarget=%s\n", readlink($_);
- } elsif ( -f $_ ) {
- # Entry is File
- print "\ttype=FILE\n";
- print "\tsize=$sz\n";
- print "\tchecksum=VOLATILE\n";
- } elsif ( -d $_ ) {
- # Entry is Directory
- print "\ttype=DIRECTORY\n";
- }
- }'
|