mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.7 KiB

  1. #!/bin/bash
  2. #
  3. # WARNING: Create backup copies of your files before you use this tool
  4. # for editing the categories of your packages !!!
  5. #
  6. # Usage: sh misc/archive/catedit.sh package/base/*/*.desc
  7. # or: sh misc/archive/catedit.sh -a
  8. #
  9. set -e
  10. item=''
  11. tmp=$( mktemp )
  12. if [ $(dialog --version 2>&1| grep -c "0.9") -eq 0 ]; then
  13. echo "dialog's version at least 0.9 needed"
  14. exit 1
  15. fi
  16. if [ "$1" = "-a" -o "$1" = "--all" ]
  17. then files="$(find package/ -name *.desc | sort -t '/' -k 4)"
  18. else files="$@"
  19. fi
  20. until
  21. pkglst=$(grep '^\[C\]' $files | sed -e 's,^[^:]*/,,;' \
  22. -e 's,\.[^ ]* , ",;' -e 's,$,",;' | sed -e 's, "$,",' \
  23. | tr '\n' ' ' )
  24. eval dialog --backtitle \"ROCK Linux package category editor\" \
  25. ${item:+--default-item} $item --cancel-label \
  26. Quit --menu \"Choose the package you want to edit\" \
  27. 42 120 35 $pkglst 2> $tmp
  28. item="$( cat $tmp )"
  29. cat $tmp
  30. [ -z "$item" ]
  31. do
  32. for file in $files; do
  33. [[ $file = */$item.desc ]] && break
  34. done
  35. (for category in $(awk '/^[^# ]/ {print $1}' < Documentation/Developers/PKG-CATEGORIES); do
  36. echo -n $category $category
  37. if [ -n "$(grep "^\[C\].*$category" $file )" ]
  38. then echo -e " on "
  39. else echo -e " off "
  40. fi
  41. done ) > $tmp
  42. dialog --cancel-label Back --backtitle " categories for $item " \
  43. --checklist "$(grep '^\[I\]' $file | sed 's/\[I\] //' )" \
  44. 42 80 35 $(cat $tmp) 2> $tmp
  45. value=$( cat $tmp | sed -e 's/"//g' -e 's/ $//' )
  46. if [ "$value" ] ; then
  47. cat $file | sed "s,^\[C\] .*,\[C\] $value,g" > $tmp
  48. cat $tmp > $file
  49. #grep -v '^\[C\]' "$file" > $tmp
  50. #echo -e '\n'"[C] $value" >> $tmp
  51. #./scripts/Create-DescPatch $item | patch -p1
  52. fi
  53. done
  54. rm -f $tmp