fbtenv.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #!/bin/sh
  2. # unofficial strict mode
  3. set -eu;
  4. FLIPPER_TOOLCHAIN_VERSION="3";
  5. get_kernel_type()
  6. {
  7. SYS_TYPE="$(uname -s)"
  8. if [ "$SYS_TYPE" = "Darwin" ]; then
  9. TOOLCHAIN_PATH="toolchain/x86_64-darwin";
  10. elif [ "$SYS_TYPE" = "Linux" ]; then
  11. TOOLCHAIN_PATH="toolchain/x86_64-linux";
  12. elif echo "$SYS_TYPE" | grep -q "MINGW"; then
  13. echo "In MinGW shell use \"fbt.cmd\" instead of \"fbt\"";
  14. exit 1;
  15. else
  16. echo "Sorry, your system is not supported. Please report your configuration to us.";
  17. exit 1;
  18. fi
  19. }
  20. check_download_toolchain()
  21. {
  22. if [ ! -d "$SCRIPT_PATH/$TOOLCHAIN_PATH" ]; then
  23. download_toolchain;
  24. elif [ ! -f "$SCRIPT_PATH/$TOOLCHAIN_PATH/VERSION" ]; then
  25. download_toolchain;
  26. elif [ "$(cat "$SCRIPT_PATH/$TOOLCHAIN_PATH/VERSION")" -ne "$FLIPPER_TOOLCHAIN_VERSION" ]; then
  27. download_toolchain;
  28. fi
  29. }
  30. download_toolchain()
  31. {
  32. chmod 755 "$SCRIPT_PATH/scripts/toolchain/unix-toolchain-download.sh";
  33. "$SCRIPT_PATH/scripts/toolchain/unix-toolchain-download.sh" "$FLIPPER_TOOLCHAIN_VERSION" || exit 1;
  34. }
  35. main()
  36. {
  37. if [ -z "${SCRIPT_PATH:-}" ]; then
  38. echo "Manual running of this script is not allowed.";
  39. exit 1;
  40. fi
  41. get_kernel_type; # sets TOOLCHAIN_PATH
  42. check_download_toolchain;
  43. PATH="$SCRIPT_PATH/$TOOLCHAIN_PATH/python/bin:$PATH";
  44. PATH="$SCRIPT_PATH/$TOOLCHAIN_PATH/bin:$PATH";
  45. PATH="$SCRIPT_PATH/$TOOLCHAIN_PATH/protobuf/bin:$PATH";
  46. PATH="$SCRIPT_PATH/$TOOLCHAIN_PATH/openocd/bin:$PATH";
  47. }
  48. main;