diff --git a/Library/Homebrew/cask/artifact/abstract_uninstall.rb b/Library/Homebrew/cask/artifact/abstract_uninstall.rb index 82aa4fd467866..206f0d380a9db 100644 --- a/Library/Homebrew/cask/artifact/abstract_uninstall.rb +++ b/Library/Homebrew/cask/artifact/abstract_uninstall.rb @@ -24,6 +24,8 @@ class AbstractUninstall < AbstractArtifact :rmdir, ].freeze + TRASH_SCRIPT = (HOMEBREW_LIBRARY_PATH/"cask/utils/trash.swift").freeze + def self.from_args(cask, **directives) new(cask, directives) end @@ -318,28 +320,7 @@ def uninstall_trash(*paths, **options) end def trash_paths(*paths, command: nil, **_) - result = command.run!("osascript", args: ["-e", <<~APPLESCRIPT, *paths]) - on run argv - repeat with i from 1 to (count argv) - set item i of argv to (item i of argv as POSIX file) - end repeat - - tell application "Finder" - set trashedItems to (move argv to trash) - set output to "" - - repeat with i from 1 to (count trashedItems) - set trashedItem to POSIX path of (item i of trashedItems as string) - set output to output & trashedItem - if i < count trashedItems then - set output to output & character id 0 - end if - end repeat - - return output - end tell - end run - APPLESCRIPT + result = command.run!("/usr/bin/swift", args: [TRASH_SCRIPT, *paths]) # Remove AppleScript's automatic newline. result.tap { |r| r.stdout.sub!(/\n$/, "") } diff --git a/Library/Homebrew/cask/utils/trash.swift b/Library/Homebrew/cask/utils/trash.swift new file mode 100644 index 0000000000000..cddbd686ccd4c --- /dev/null +++ b/Library/Homebrew/cask/utils/trash.swift @@ -0,0 +1,22 @@ +#!/usr/bin/swift + +import Foundation + +if (CommandLine.arguments.count < 2) { + exit(2) +} + +let manager: FileManager = FileManager() + +for item in CommandLine.arguments[1...] { + do { + let path: URL = URL(fileURLWithPath: item) + try manager.trashItem(at: path, resultingItemURL: nil) + print(path) + } + catch { + print("\0") + } +} + +exit(0) diff --git a/Library/Homebrew/dev-cmd/tap-new.rb b/Library/Homebrew/dev-cmd/tap-new.rb index db5e742c15626..9631a25a1b9df 100644 --- a/Library/Homebrew/dev-cmd/tap-new.rb +++ b/Library/Homebrew/dev-cmd/tap-new.rb @@ -54,11 +54,11 @@ def tap_new jobs: - job: macOS pool: - vmImage: macOS-10.13 + vmImage: macOS-10.14 steps: - bash: | set -e - sudo xcode-select --switch /Applications/Xcode_10.1.app/Contents/Developer + sudo xcode-select --switch /Applications/Xcode_10.2.app/Contents/Developer brew update HOMEBREW_TAP_DIR="/usr/local/Homebrew/Library/Taps/#{tap.full_name}" mkdir -p "$HOMEBREW_TAP_DIR" diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e1dea13014230..30bbdd14f3619 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,11 +1,11 @@ jobs: - job: macOS pool: - vmImage: macOS-10.13 + vmImage: macOS-10.14 steps: - bash: | set -e - sudo xcode-select --switch /Applications/Xcode_10.1.app/Contents/Developer + sudo xcode-select --switch /Applications/Xcode_10.2.app/Contents/Developer HOMEBREW_REPOSITORY="$(brew --repo)" mv "$HOMEBREW_REPOSITORY/Library/Taps" "$PWD/Library" sudo rm -rf "$HOMEBREW_REPOSITORY"