scrcpy 1.1 (new formula)
Closes #25173. Signed-off-by: FX Coudert <fxcoudert@gmail.com>
This commit is contained in:
parent
0c69d4a255
commit
b23958e64e
1 changed files with 76 additions and 0 deletions
76
Formula/scrcpy.rb
Normal file
76
Formula/scrcpy.rb
Normal file
|
@ -0,0 +1,76 @@
|
|||
class Scrcpy < Formula
|
||||
desc "Display and control your Android device"
|
||||
homepage "https://github.com/Genymobile/scrcpy"
|
||||
url "https://github.com/Genymobile/scrcpy/archive/v1.1.tar.gz"
|
||||
sha256 "1b56caa4aad5add2c49ea436e9f26282b55a413003d0d73b029a1fbf48da0a1c"
|
||||
|
||||
depends_on "meson" => :build
|
||||
depends_on "ninja" => :build
|
||||
depends_on "pkg-config" => :build
|
||||
|
||||
depends_on "ffmpeg"
|
||||
depends_on "sdl2"
|
||||
|
||||
resource "prebuilt-server" do
|
||||
url "https://github.com/Genymobile/scrcpy/releases/download/v1.1/scrcpy-server-v1.1.jar"
|
||||
sha256 "14826512bf38447ec94adf3b531676ce038d19e7e06757fb4e537882b17e77b3"
|
||||
end
|
||||
|
||||
def install
|
||||
r = resource("prebuilt-server")
|
||||
r.verify_download_integrity(r.fetch)
|
||||
cp r.cached_download, buildpath/"prebuilt-server.jar"
|
||||
|
||||
mkdir "build" do
|
||||
system "meson", "--prefix=#{prefix}",
|
||||
"-Dprebuilt_server=#{buildpath/"prebuilt-server.jar"}",
|
||||
".."
|
||||
|
||||
system "ninja", "install"
|
||||
end
|
||||
end
|
||||
|
||||
def caveats; <<~EOS
|
||||
At runtime, adb must be accessible from your PATH.
|
||||
|
||||
You can install adb from Homebrew Cask:
|
||||
brew cask install android-platform-tools
|
||||
EOS
|
||||
end
|
||||
|
||||
test do
|
||||
fakeadb = (testpath/"fakeadb.sh")
|
||||
|
||||
# When running, scrcpy calls adb three times:
|
||||
# - adb push ... (to push scrcpy-server.jar)
|
||||
# - adb reverse ... tcp:PORT ...
|
||||
# - adb shell ...
|
||||
# However, exiting on $1 = shell didn't work properly, so instead
|
||||
# fakeadb exits on $1 = reverse
|
||||
|
||||
fakeadb.write <<~EOS
|
||||
#!/bin/sh
|
||||
echo $@ >> #{testpath/"fakeadb.log"}
|
||||
|
||||
if [ "$1" = "reverse" ]; then
|
||||
exit 42
|
||||
fi
|
||||
EOS
|
||||
|
||||
fakeadb.chmod 0755
|
||||
ENV["ADB"] = fakeadb
|
||||
|
||||
# It's expected to fail after adb reverse step because fakeadb exits
|
||||
# with code 42
|
||||
out = shell_output("#{bin}/scrcpy -p 1337 2>&1", 1)
|
||||
assert_match(/ 42/, out)
|
||||
|
||||
log_content = File.read(testpath/"fakeadb.log")
|
||||
|
||||
# Check that it used port we've specified
|
||||
assert_match(/tcp:1337/, log_content)
|
||||
|
||||
# Check that it tried to push something from its prefix
|
||||
assert_match(/push #{prefix}/, log_content)
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue