1180740Sdes#!/bin/sh 2180740Sdes# 3180740Sdes# inventory.sh 4180744Sdes# $Id: inventory.sh,v 1.6 2003/11/21 12:48:56 djm Exp $ 5180740Sdes# 6180740Sdes# Originally written by Ben Lindstrom, modified by Darren Tucker to use perl 7180740Sdes# This file is placed into the public domain. 8180740Sdes# 9180740Sdes# This will produce an AIX package inventory file, which looks like: 10180740Sdes# 11180740Sdes# /usr/local/bin: 12180740Sdes# class=apply,inventory,openssh 13180740Sdes# owner=root 14180740Sdes# group=system 15180740Sdes# mode=755 16180740Sdes# type=DIRECTORY 17180740Sdes# /usr/local/bin/slogin: 18180740Sdes# class=apply,inventory,openssh 19180740Sdes# owner=root 20180740Sdes# group=system 21180740Sdes# mode=777 22180740Sdes# type=SYMLINK 23180740Sdes# target=ssh 24180740Sdes# /usr/local/share/Ssh.bin: 25180740Sdes# class=apply,inventory,openssh 26180740Sdes# owner=root 27180740Sdes# group=system 28180740Sdes# mode=644 29180740Sdes# type=FILE 30180740Sdes# size=VOLATILE 31180740Sdes# checksum=VOLATILE 32180740Sdes 33180740Sdesfind . ! -name . -print | perl -ne '{ 34180740Sdes chomp; 35180740Sdes if ( -l $_ ) { 36180740Sdes ($dev,$ino,$mod,$nl,$uid,$gid,$rdev,$sz,$at,$mt,$ct,$bsz,$blk)=lstat; 37180740Sdes } else { 38180740Sdes ($dev,$ino,$mod,$nl,$uid,$gid,$rdev,$sz,$at,$mt,$ct,$bsz,$blk)=stat; 39180740Sdes } 40180740Sdes 41180740Sdes # Start to display inventory information 42180740Sdes $name = $_; 43180740Sdes $name =~ s|^.||; # Strip leading dot from path 44180740Sdes print "$name:\n"; 45180740Sdes print "\tclass=apply,inventory,openssh\n"; 46180740Sdes print "\towner=root\n"; 47180740Sdes print "\tgroup=system\n"; 48180740Sdes printf "\tmode=%lo\n", $mod & 07777; # Mask perm bits 49180740Sdes 50180740Sdes if ( -l $_ ) { 51180740Sdes # Entry is SymLink 52180740Sdes print "\ttype=SYMLINK\n"; 53180740Sdes printf "\ttarget=%s\n", readlink($_); 54180740Sdes } elsif ( -f $_ ) { 55180740Sdes # Entry is File 56180740Sdes print "\ttype=FILE\n"; 57180740Sdes print "\tsize=$sz\n"; 58180740Sdes print "\tchecksum=VOLATILE\n"; 59180740Sdes } elsif ( -d $_ ) { 60180740Sdes # Entry is Directory 61180740Sdes print "\ttype=DIRECTORY\n"; 62180740Sdes } 63180740Sdes}' 64