* main:
Prepare for release 2.20.0.
Update manual workflow.
Support choosing channel to download SDK components from.
build-tools to 31.0.0; SDK cmd-line tools to 5.0. (#174)
Fix macos-11 VM label.
Realm JavaScript is using Android Emulator Runner (#182)
Add MobileRT to the list of projects (#181)
Support non-mobile targets (Wear OS, TV) (#180)
Bump path-parse from 1.0.6 to 1.0.7
* Update build-tools to 31.0.0. Add API 31 emulator to workflow. Update SDK command-line tools to 5.0
* Update test fixture dependencies.
* Test API 31 with macos-11.
* Add android:exported to AndroidManifest.
* Format
* Add non-mobile targets to allowlist
* Add new targets to input validator tests
* Update built input-validator.js
* Update README with new targets
* Update action.yml with new targets
* main:
Prepare for release 2.18.1.
Unzip specific emulator build into latest emulator build from sdkmanager. Support using modern build id for emulator-build.
* main:
Prepare for release 2.18.0.
Add sample workflow for AVD snapshot caching.
Add `force-avd-creation` to Configurations table in README.md.
Add force-avd-creation to skip avd creation if avd with same name exists. Update workflow to test snapshot caching.
Add accompanist to adoption list
Gradle 7.1.
Bump glob-parent from 5.1.1 to 5.1.2
Bump ws from 7.3.1 to 7.4.6
* main:
Prepare for release 2.17.0.
Update test fixture dependencies.
Add option to toggle Linux hardware acceleration
Bump hosted-git-info from 2.8.8 to 2.8.9
Bump lodash from 4.17.19 to 4.17.21
* main:
Prepare for release 2.16.0.
Add support for arm64-v8a for Apple Silicon Macs
Add option to disable spellcheck
Bump y18n from 4.0.0 to 4.0.1
Update README.md
Add google/android-fhir to the list of projects that use android-emulator-runner (#132)
Add Wikipedia app to list of projects.
Add kiwix-android to the list of projects
Avoid Wrapping Script Code In Quotes
The exec() command only runs a program with literal argument strings.
It does not know how to do things like expanding environment variables,
or piping/redirection. Hence the way to get "shell intelligence"
is to use exec() to run the `sh` process with the command line string
as a parameter.
But the method being used to do this was:
exec.exec(`sh -c \\"${script}"`)
This has problems, because wrapping the script in quotes creates
issues when the script itself contains quotes. Escaping the string
correctly is a non-trivial problem, which also would create "noise"
in the debug output which would add confusion.
http://mywiki.wooledge.org/BashFAQ/050
The easiest way to work around this here is to use the array form of
exec() to pass exactly two parameters to `sh`. No manipulation of the
script string is needed with this approach:
exec.exec("sh", ["-c", script])
There are more cases in the project of `sh -c` usage which should also
be changed, and likely abstracted (shellExec()?) But this small patch
just fixes the most important case for the user-provided script.
---
Additionally, this removes the escaped backslash (`\\`) from the
start of the executed command. That was presumably to suppress the
use of aliases:
https://unix.stackexchange.com/questions/524254/why-are-backslashes-included-in-this-shell-script
But because this is invoking a non-interactive shell session, aliases
would not apply. Hence the extra backslash shouldn't be needed.