home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / usr / lib / rpm / u_pkg.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2006-11-29  |  2KB  |  85 lines

  1. #!/bin/sh
  2.  
  3. # a universal interface to Unix OS package managment systems
  4.  
  5. # This script is not finished.  It is a bunch of ideas for creating a
  6. # universal package manager using the OS package manager.  I wish to
  7. # only use tools which are installed in the OS by default and be
  8. # portable to all OS package managers.
  9.  
  10.  
  11. PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/ucb:/usr/bsd:$PATH"
  12. export PATH
  13.  
  14.  
  15.  
  16. osname=`uname -s`
  17. if test $? -ne 0 || test X$osname = X ; then
  18.     echo "I can't determine what platform this is.  Exiting"
  19.     exit 1
  20. fi
  21.  
  22.  
  23. #
  24. # Set OS dependent defaults
  25. #
  26.  
  27. # note: that the "package name" which are returned by this script
  28. # should always include the version and release number.
  29.  
  30. case $osname in
  31.     Linux)
  32.         check_all_packages='rpm -Va'
  33.         list_all_packages='rpm -qa'
  34.         list_all_files='rpm -qla'
  35.         list_all_files_in_package='rpm -ql $1'
  36.         full_package_name='rpm -q $1'
  37.         query_file='rpm -qf $1'
  38.         ;;
  39.     SunOS)
  40.         check_all_packages='/usr/sbin/pkgchk -n'
  41.         list_all_files='/usr/sbin/pkgchk -l | /bin/egrep Pathname | /bin/awk "{print \$2}" '
  42.         list_all_files_in_package='/usr/sbin/pkgchk -l $1 | /bin/egrep Pathname | /bin/awk "{print \$2}" '
  43.         list_all_packages='/usr/bin/pkginfo -x | /bin/sed -e "/^[a-zA-Z]/ { N; /^\\n\$/d; s/ .*$//; }" '
  44.         package_version='/usr/bin/pkginfo -x $1 | egrep -v "^[a-zA-Z]" | sed -e "s/(.*)//; s/\ \ *//" '
  45.         query_file='/usr/sbin/pkgchk -l -p $1 | /bin/egrep -v "^[a-zA-Z]" | xargs /usr/bin/pkginfo -x | /bin/sed -e "/^[a-zA-Z]/ { N; /^\\n\$/d; s/\ .*\\n.*//; }" '
  46.         ;;
  47.     OSF1)
  48.         ;;
  49.     HP-UX)
  50.         ;;
  51.     AIX)
  52.         ;;
  53.     IRIX|IRIX64)
  54.         ;;
  55.     *)
  56.         echo "I haven't been configured yet to work on $osname."
  57.         echo "email it to rpm-list@redhat.com, so that your OS"
  58.         echo "will be supported by some future version of this script."
  59.         echo ""
  60.         echo "Thanks!"
  61.         echo
  62.         exit 2
  63.         ;;
  64. esac
  65.  
  66.  
  67.  
  68. option=$1
  69. shift
  70.  
  71. # I would like to have the second $ actually interpolate so I could
  72. # drop the second eval.  Anyone know how to do this?
  73.  
  74. if [ $option = 'print_cmd' ]; then
  75.     option=$1
  76.     shift
  77.     eval echo $"$option"
  78.     exit 0
  79. fi
  80.  
  81. eval eval $"$option"
  82.  
  83.  
  84.  
  85.