11305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#!/bin/sh
21305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#
31305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# inventory.sh
41305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# $Id: inventory.sh,v 1.6 2003/11/21 12:48:56 djm Exp $
51305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#
61305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# Originally written by Ben Lindstrom, modified by Darren Tucker to use perl
71305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# This file is placed into the public domain.
81305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#
91305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# This will produce an AIX package inventory file, which looks like:
101305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#
111305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# /usr/local/bin:
121305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          class=apply,inventory,openssh
131305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          owner=root
141305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          group=system
151305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          mode=755
161305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          type=DIRECTORY
171305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# /usr/local/bin/slogin:
181305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          class=apply,inventory,openssh
191305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          owner=root
201305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          group=system
211305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          mode=777
221305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          type=SYMLINK
231305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          target=ssh
241305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood# /usr/local/share/Ssh.bin:
251305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          class=apply,inventory,openssh
261305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          owner=root
271305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          group=system
281305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          mode=644
291305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          type=FILE
301305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          size=VOLATILE
311305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood#          checksum=VOLATILE
321305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
331305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwoodfind . ! -name . -print | perl -ne '{
341305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	chomp;
351305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	if ( -l $_ ) {
361305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		($dev,$ino,$mod,$nl,$uid,$gid,$rdev,$sz,$at,$mt,$ct,$bsz,$blk)=lstat;
371305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	} else {
381305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		($dev,$ino,$mod,$nl,$uid,$gid,$rdev,$sz,$at,$mt,$ct,$bsz,$blk)=stat;
391305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	}
401305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood
411305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	# Start to display inventory information
421305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	$name = $_;
431305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	$name =~ s|^.||;	# Strip leading dot from path
441305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	print "$name:\n";
451305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	print "\tclass=apply,inventory,openssh\n";
461305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	print "\towner=root\n";
471305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	print "\tgroup=system\n";
481305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	printf "\tmode=%lo\n", $mod & 07777;	# Mask perm bits
491305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	
501305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	if ( -l $_ ) {
511305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		# Entry is SymLink
521305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		print "\ttype=SYMLINK\n";
531305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		printf "\ttarget=%s\n", readlink($_);
541305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	} elsif ( -f $_ ) {
551305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		# Entry is File
561305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		print "\ttype=FILE\n";
571305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		print "\tsize=$sz\n";
581305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		print "\tchecksum=VOLATILE\n";
591305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	} elsif ( -d $_ ) {
601305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		# Entry is Directory
611305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood		print "\ttype=DIRECTORY\n";
621305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood	}
631305e95ba6ff9fa202d0818caf10405df4b0f648Mike Lockwood}'
64