home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / lib / ubiquity / apt-setup / apt-setup-verify next >
Encoding:
Text File  |  2006-10-31  |  1.7 KB  |  89 lines

  1. #!/bin/sh
  2. # verify and optionally save out the file
  3. set -e
  4.  
  5. NOTEST=""
  6. if [ "$1" = "--invalid" ]; then
  7.     NOTEST=1
  8.     shift
  9. fi
  10.  
  11. file="$1"
  12. saveto="$2"
  13.  
  14. if [ -n "$ROOT" ]; then
  15.     chroot=chroot
  16. else
  17.     chroot=
  18. fi
  19.  
  20. saveline () {
  21.     if [ "$saveto" ]; then
  22.         echo "$*" >> $saveto
  23.     fi
  24. }
  25.  
  26. valid () {
  27.     line="$1"
  28.  
  29.     tmp=$($chroot $ROOT tempfile)
  30.     echo "$line" > $ROOT$tmp
  31.     
  32.     # If the base system can be installed from CD, don't bother
  33.     # validating the mirror; it can take a long time, most users won't
  34.     # care just now, and the situation can be repaired later once the
  35.     # system is installed.
  36.     if [ -e /cdrom/.disk/base_installable ] || [ "$OVERRIDE_BASE_INSTALLABLE" ]; then
  37.         case $line in
  38.             'deb http'*|'deb ftp'*|'deb-src http'*|'deb-src ftp'*)
  39.                 rm -f $ROOT$tmp
  40.                 return 0
  41.                 ;;
  42.         esac
  43.     fi
  44.  
  45.     if $chroot $ROOT apt-get -o APT::Get::List-Cleanup=false \
  46.         -o Dir::Etc::sourcelist=$tmp update
  47.     then
  48.         rm -f $ROOT$tmp
  49.     else
  50.         rm -f $ROOT$tmp
  51.         false
  52.     fi
  53. }
  54.  
  55. items=0
  56. gooditems=0
  57.  
  58. IFS="
  59. "
  60. # Can't just iterate over $(cat $file) because that kills newlines, so
  61. # introduce a dummy colon.
  62. for line in $(sed 's/^/:/' $file); do
  63.     line="${line#:}"
  64.     if expr "$line" : '.*[^ ].*' >/dev/null && [ "$(expr "$line" : "#")" != 1 ]; then
  65.         items=$(expr "$items" + 1)
  66.         # Write blank line between generators
  67.         if [ $items = 1 ] && [ -f "$saveto" ]; then
  68.             saveline ""
  69.         fi
  70.  
  71.         if [ -z "$NOTEST" ] && valid "$line"; then
  72.             gooditems=$(expr "$gooditems" + 1)
  73.             saveline "$line"
  74.         else
  75.             saveline "# Line commented out by installer because it failed to verify:"
  76.             saveline "#$line"
  77.         fi
  78.     else
  79.         # Ignore leading empty lines
  80.         if [ $items != 0 ] || [ "$line" ]; then
  81.             saveline "$line"
  82.         fi
  83.     fi
  84. done
  85.  
  86. if [ "$gooditems" != "$items" ]; then
  87.     exit 1
  88. fi
  89.