disk.update 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/sh
  2. set -e
  3. vardir="$1"
  4. method=$2
  5. option=$3
  6. cd "$vardir/methods/disk"
  7. . ./shvar.$option
  8. if [ -z "$p_main_packages" -a -z "$p_ctb_packages" -a \
  9. -z "$p_nf_packages" -a -z "$p_lcl_packages " ]
  10. then
  11. echo '
  12. No Packages files available, cannot update available packages list.
  13. Hit RETURN to continue. '
  14. read response
  15. exit 0
  16. fi
  17. xit=1
  18. trap '
  19. rm -f packages-{main,ctb,nf,lcl}
  20. if [ -n "$umount" ]
  21. then
  22. umount "$umount" >/dev/null 2>&1
  23. fi
  24. exit $xit
  25. ' 0
  26. if [ -n "$p_blockdev" ]
  27. then
  28. umount="$p_mountpoint"
  29. mount -rt "$p_fstype" -o nosuid,nodev "$p_blockdev" "$p_mountpoint"
  30. fi
  31. if [ -n "$p_nfs" ]
  32. then
  33. umount="$p_mountpoint"
  34. mount -rt nfs "$p_nfs" -o nosuid,nodev "$p_mountpoint"
  35. fi
  36. for f in main ctb nf lcl
  37. do
  38. eval 'this_packages=$p_'$f'_packages'
  39. if [ -z "$this_packages" ]; then continue; fi
  40. case "$p_mountpoint" in
  41. */ ) packagesfile="$p_mountpoint$this_packages" ;;
  42. '' ) packagesfile="$this_packages" ;;
  43. * ) packagesfile="$p_mountpoint/$this_packages" ;;
  44. esac
  45. case "$packagesfile" in
  46. *.gz | *.Z | *.GZ | *.z)
  47. echo -n "Uncompressing $packagesfile ... "
  48. zcat <"$packagesfile" >packages-$f
  49. echo done.
  50. dpkg --merge-avail packages-$f
  51. ;;
  52. '')
  53. ;;
  54. *)
  55. dpkg --merge-avail "$packagesfile"
  56. ;;
  57. esac
  58. done
  59. echo -n 'Update OK. Hit RETURN. '
  60. read response
  61. xit=0