disk.update 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. updatetype=update
  37. for f in main ctb nf lcl
  38. do
  39. eval 'this_packages=$p_'$f'_packages'
  40. case "$this_packages" in
  41. '')
  42. continue
  43. ;;
  44. scan)
  45. eval 'this_binary=$p_'$f'_binary'
  46. if [ -z "$this_binary" ]; then continue; fi
  47. if [ "$updatetype" = update ]
  48. then
  49. dpkg --clear-avail
  50. updatetype=merge
  51. fi
  52. echo Running dpkg --record-avail -R "$p_mountpoint$this_binary"
  53. dpkg --record-avail -R "$p_mountpoint$this_binary"
  54. ;;
  55. *)
  56. packagesfile="$p_mountpoint$this_packages"
  57. case "$packagesfile" in
  58. *.gz | *.Z | *.GZ | *.z)
  59. echo -n "Uncompressing $packagesfile ... "
  60. zcat <"$packagesfile" >packages-$f
  61. echo done.
  62. dpkg --$updatetype-avail packages-$f
  63. updatetype=merge
  64. ;;
  65. '')
  66. ;;
  67. *)
  68. dpkg --$updatetype-avail "$packagesfile"
  69. updatetype=merge
  70. ;;
  71. esac
  72. ;;
  73. esac
  74. done
  75. dpkg --forget-old-unavail
  76. echo -n 'Update OK. Hit RETURN. '
  77. read response
  78. xit=0