framework_setup.sh 994 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/bin/bash
  2. #
  3. # A `realpath` alternative using the default C implementation.
  4. filepath() {
  5. [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
  6. }
  7. REPO_ROOT="$(dirname $(dirname $(dirname $(filepath $0))))"
  8. clone_checkout_dpf() {
  9. cd $REPO_ROOT
  10. revision=$(Scripts/CI/get_revision.sh darwinprivateframeworks)
  11. cd ..
  12. if [ ! -d DarwinPrivateFrameworks ]; then
  13. gh repo clone OpenSwiftUIProject/DarwinPrivateFrameworks
  14. cd DarwinPrivateFrameworks
  15. else
  16. echo "DarwinPrivateFrameworks already exists, skipping clone."
  17. cd DarwinPrivateFrameworks
  18. git fetch --all --quiet
  19. git stash --quiet || true
  20. git reset --hard --quiet origin/main
  21. fi
  22. if [ -n "$revision" ]; then
  23. git checkout --quiet "$revision"
  24. else
  25. echo "No pinned revision for DarwinPrivateFrameworks, using default branch."
  26. fi
  27. }
  28. update_dpf() {
  29. cd $REPO_ROOT/../DarwinPrivateFrameworks
  30. swift package update-xcframeworks --allow-writing-to-package-directory
  31. }
  32. clone_checkout_dpf
  33. update_dpf