update_api.sh 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env bash
  2. set -e
  3. export VSCODE_QUALITY="stable"
  4. while getopts ":i" opt; do
  5. case "$opt" in
  6. i)
  7. export VSCODE_QUALITY="insider"
  8. ;;
  9. *)
  10. ;;
  11. esac
  12. done
  13. URL=$( curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/' )
  14. # echo "url: ${URL}"
  15. FILE="${URL##*/}"
  16. # echo "file: ${FILE}"
  17. DIRECTORY="${FILE%.zip}"
  18. # echo "directory: ${DIRECTORY}"
  19. if [[ ! -f "${FILE}" ]]; then
  20. wget "${URL}"
  21. fi
  22. if [[ ! -d "${DIRECTORY}" ]]; then
  23. unzip "${FILE}" -d "${DIRECTORY}"
  24. fi
  25. APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/resources/app/product.json" )
  26. APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}' )
  27. jsonTmp=$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )
  28. echo "${jsonTmp}" > product.json && unset jsonTmp