OpenSDE Framework (without history before r20070)
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.

80 lines
2.5 KiB

  1. # --- SDE-COPYRIGHT-NOTE-BEGIN ---
  2. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  3. #
  4. # Filename: lib/sde-package/new.in
  5. # Copyright (C) 2006 - 2007 The OpenSDE Project
  6. #
  7. # More information can be found in the files COPYING and README.
  8. #
  9. # This program is free software; you can redistribute it and/or modify
  10. # it under the terms of the GNU General Public License as published by
  11. # the Free Software Foundation; version 2 of the License. A copy of the
  12. # GNU General Public License can be found in the file COPYING.
  13. # --- SDE-COPYRIGHT-NOTE-END ---
  14. package_new() {
  15. local method=
  16. if [ "$1" = "-fm" ]; then
  17. method="freshmeat"
  18. shift
  19. elif [ "$1" = "-deb" ];then
  20. shift
  21. exec python ./lib/sde-package/new-debian.py "$@"
  22. fi
  23. # new package
  24. new_package="$1"; shift
  25. if [ "$new_package" != "${new_package//\//}" ]; then
  26. new_repository="${new_package%/*}"
  27. new_package="${new_package##*/}"
  28. if [ ! -d "${new_repository}" ]; then
  29. # uhm, it doesn't exist yet
  30. if [ "$new_repository" == "${new_repository//\//}" ]; then
  31. # uh, just a repo name
  32. new_repository="$SDEROOT/package/$new_repository"
  33. elif [ -d "$SDEROOT/${new_repository%/*}" ]; then
  34. # SDEROOT relative
  35. new_repository="$SDEROOT/$new_repository"
  36. else
  37. # not even $SDEROOT relative
  38. echo_abort 1 "package_new() can't handle repository '$new_repository'."
  39. fi
  40. fi
  41. else
  42. new_repository=$( package_autodetect_repo )
  43. echo_warning "assuming requested repository as '${new_repository:-wip}'."
  44. new_repository="$SDEROOT/package/${new_repository:-wip}"
  45. fi
  46. if [ -d "${new_repository%/*}" ]; then
  47. # normalize
  48. new_repository=$( cd ${new_repository%/*}; pwd -P )/${new_repository##*/}
  49. else
  50. echo_abort 1 "repository ${new_repository} doesn't have a valid parent folder."
  51. fi
  52. # on this tree, and at package/
  53. [ "${new_repository%/*}" == "$SDEROOT/package" ] ||
  54. echo_abort 1 "invalid repository location. (${new_repository%/*})"
  55. if [ ! -d "$new_repository" ]; then
  56. echo_warning "New repository created. (${new_repository#$SDEROOT/package/})"
  57. fi
  58. cd "$SDEROOT"
  59. case "${method}" in
  60. freshmeat)
  61. fm_name=${1:-$new_package}
  62. /bin/bash ./lib/sde-package/new-freshmeat.sh ${new_repository#$SDEROOT/package/}/$new_package "$fm_name"
  63. ;;
  64. *) /bin/sh ./lib/sde-package/new.sh ${new_repository#$SDEROOT/package/}/$new_package "$@"
  65. ;;
  66. esac
  67. if [ -e package/*/$new_package/$new_package.desc ];then
  68. echo -n "Updating chksum $new_package... "
  69. if ./bin/sde pkg up $new_package &> /dev/null;then
  70. echo "ok"
  71. else
  72. echo "failed"
  73. fi
  74. fi
  75. }