home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Examples / DriverKit / AMDPCSCSIDriver / genpkgfiles < prev    next >
Text File  |  1996-04-03  |  3KB  |  113 lines

  1. #!/bin/sh
  2.  
  3. # genpkgfiles
  4. # - generate a driver .info file and copy over any package scripts
  5. #
  6.  
  7. [ "$1" = "" -o "$2" = "" -o "$3" = "" ] && {
  8.     echo "Usage: `basename $0` <driver project name> <driver source root> <package output dir>"
  9.     exit 1
  10. }
  11.  
  12. DRIVER_PROJECT_NAME=$1
  13. INPUT_ROOT=$2
  14. OUTPUT_ROOT=$3
  15. DEFAULT_TABLE=$INPUT_ROOT/Default.table
  16. DRIVER_INFO=$INPUT_ROOT/DriverInfo
  17. PROG_NAME=`basename $0`
  18.  
  19. INFO_FILE=${OUTPUT_ROOT}/${DRIVER_PROJECT_NAME}.info
  20.  
  21. [ -d "$INPUT_ROOT" ] || {
  22.     echo "$PROG_NAME: driver input root directory '$INPUT_ROOT' does not exist"
  23.     exit 1
  24. }
  25.  
  26. [ -d "$OUTPUT_ROOT" ] || {
  27.     echo "$PROG_NAME: driver output root directory '$OUTPUT_ROOT' does not exist"
  28.     exit 1
  29. }
  30.  
  31. [ -f "$DEFAULT_TABLE" ] || {
  32.     echo "$PROG_NAME: driver default table '$DEFAULT_TABLE' does not exist"
  33.     exit 1
  34. }
  35.  
  36. [ -f "$DRIVER_INFO" ] || {
  37.     echo "$PROG_NAME: $DRIVER_INFO does not exist"
  38.     exit 1
  39. }
  40.  
  41. . $DRIVER_INFO # source it in
  42.  
  43. DRIVER_VERSION=`sed -n 's/.*"Version"[       ]*=[    ]*"\([0-9].[0-9][0-9]\)".*/\1/p' $DEFAULT_TABLE`
  44.  
  45. if [ "$DRIVER_VERSION" = "" ]
  46. then
  47.     echo "$PROG_NAME: '$DEFAULT_TABLE' contains either a bad version string or none at all"
  48.     exit 1
  49. fi
  50.  
  51. NEXTSTEP_VERSION=`echo $DRIVER_VERSION | sed 's/.$//'`
  52.  
  53.  
  54. # create driver long names
  55. DRIVER_LONG_NAMES=""
  56. DRIVER_SHORT_NAMES=""
  57. for i in ${INPUT_ROOT}/English.lproj/*.strings
  58. do
  59.     [ ! "$DRIVER_LONG_NAMES" = "" ] && {
  60.     DRIVER_LONG_NAMES="${DRIVER_LONG_NAMES}, "
  61.     }
  62.     DRIVER_LONG_NAMES=${DRIVER_LONG_NAMES}`sed -n 's/.*"Long Name"[       ]*=[    ]*"\([^"]*\)";/\1/p' $i`
  63.     [ ! "$DRIVER_SHORT_NAMES" = "" ] && {
  64.     DRIVER_SHORT_NAMES="${DRIVER_SHORT_NAMES}, "
  65.     }
  66.     DRIVER_SHORT_NAMES=${DRIVER_SHORT_NAMES}`sed -n "s/\"${DRIVER_PROJECT_NAME}\"[       ]*=[    ]*\"\([^\"]*\)\";/\1/p" $i`
  67. done
  68.  
  69. DATE=`date`
  70.  
  71. echo "$PROG_NAME: generating '$INFO_FILE'"
  72. sed "s/<<DRIVER_VERSION>>/$DRIVER_VERSION/g; s/<<NEXTSTEP_VERSION>>/$NEXTSTEP_VERSION/g; s/<<DRIVER_PROJECT_NAME>>/$DRIVER_PROJECT_NAME/g; s|<<DRIVER_LONG_NAMES>>|$DRIVER_LONG_NAMES|g; s|<<DRIVER_SHORT_NAMES>>|$DRIVER_SHORT_NAMES|g; s|<<DRIVER_NAME>>|$DRIVER_NAME|g; s|<<DATE>>|$DATE|g;" > $INFO_FILE <<EOT
  73. #
  74. # <<DRIVER_PROJECT_NAME>>.info:
  75. # - auto-generated on <<DATE>>
  76. # - driver supports <<DRIVER_SHORT_NAMES>>
  77. #
  78.  
  79. # These fields will be displayed in the Info View
  80. Title        <<DRIVER_NAME>>
  81. Version        NEXTSTEP Release <<NEXTSTEP_VERSION>>, Driver Version <<DRIVER_VERSION>>
  82. Description    This package contains a driver bundle supporting the following devices: <<DRIVER_LONG_NAMES>>.  After installing, use Configure.app to add and configure the device to work with NEXTSTEP.
  83.  
  84.  
  85. # These fields are used for the installed and floppy locations
  86. DefaultLocation        /
  87. Relocatable        NO
  88. Diskname        <<DRIVER_PROJECT_NAME>> #%d
  89.  
  90. # Other fields
  91. Application        NO
  92. LibrarySubdirectory    Standard
  93. InstallOnly         YES
  94. DisableStop        YES
  95. LongFilenames        YES
  96. EOT
  97.  
  98. #
  99. # install the package scripts into the package area
  100. #
  101. for i in pre_install post_install pre_delete post_delete
  102. do
  103.     scriptname=$DRIVER_PROJECT_NAME.$i
  104.     if [ -f $INPUT_ROOT/$scriptname ] 
  105.     then
  106.     echo "$PROG_NAME: copying '$INPUT_ROOT/$scriptname' to '$OUTPUT_ROOT/$scriptname'"
  107.     cp $INPUT_ROOT/$scriptname $OUTPUT_ROOT/$scriptname
  108.     chmod 755 $OUTPUT_ROOT/$scriptname
  109.     fi
  110. done
  111.  
  112. exit 0
  113.