diff options
| author | Markus Reiter | 2017-06-20 16:30:09 +0200 |
|---|---|---|
| committer | GitHub | 2017-06-20 16:30:09 +0200 |
| commit | 96f8452e17f7a530b4cc823346b673f7626e6e95 (patch) | |
| tree | 5fc28c2f31cbdedbaf06b3ce3785b57337d0b2b0 /Library/Homebrew/utils | |
| parent | 80ce43dff1a196d021f64277a2d3b6aa3e2898f7 (diff) | |
| parent | b2daed584d6f8b737cc2b500eb19a38d02dbc8a6 (diff) | |
| download | brew-96f8452e17f7a530b4cc823346b673f7626e6e95.tar.bz2 | |
Merge pull request #2793 from reitermarkus/trash
Add support for `uninstall/zap :trash`.
Diffstat (limited to 'Library/Homebrew/utils')
| -rwxr-xr-x | Library/Homebrew/utils/trash.swift | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Library/Homebrew/utils/trash.swift b/Library/Homebrew/utils/trash.swift new file mode 100755 index 000000000..f591c3806 --- /dev/null +++ b/Library/Homebrew/utils/trash.swift @@ -0,0 +1,43 @@ +#!/usr/bin/swift + +import Cocoa + +DispatchQueue.main.async { + let arguments = CommandLine.arguments.dropFirst().filter { !$0.isEmpty } + let URLs = arguments.map { URL(fileURLWithPath: $0) } + + #if swift(>=4.0) + let workspace = NSWorkspace.shared + #else + let workspace = NSWorkspace.shared() + #endif + + workspace.recycle(URLs) { (dict, error) in + dict.forEach { + #if swift(>=4.0) + let originalPath = $0.0.path + let trashPath = $0.1.path + #else + let originalPath = $0.path + let trashPath = $1.path + #endif + + print("moved \(originalPath) to \(trashPath)") + } + + if error == nil { + exit(0) + } + + let trashedURLs = dict.keys + let untrashedURLs = URLs.filter { !trashedURLs.contains($0) } + + untrashedURLs.forEach { + fputs("could not move \($0.path) to trash\n", stderr) + } + + exit(1) + } +} + +RunLoop.main.run() |
