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