Commit f6572da4e8ecebf974a0c91535b9e8a937998629
1 parent
06d4ab1375
script/nuke failed to delete receipts
Can't use a bare system call because we need globbing
Showing 1 changed file with 2 additions and 1 deletions Inline Diff
script/nuke
| #!/usr/bin/ruby | 1 | 1 | #!/usr/bin/ruby | |
| 2 | 2 | |||
| require "optparse" | 3 | 3 | require "optparse" | |
| 4 | 4 | |||
| unless ENV["USER"] == "root" | 5 | 5 | unless ENV["USER"] == "root" | |
| exec "sudo", $0, *ARGV | 6 | 6 | exec "sudo", $0, *ARGV | |
| end | 7 | 7 | end | |
| 8 | 8 | |||
| all = false | 9 | 9 | all = false | |
| force = false | 10 | 10 | force = false | |
| opt = false | 11 | 11 | opt = false | |
| services = false | 12 | 12 | services = false | |
| 13 | 13 | |||
| OptionParser.new do |o| | 14 | 14 | OptionParser.new do |o| | |
| o.banner = "Remove most traces of Boxen from your machine." | 15 | 15 | o.banner = "Remove most traces of Boxen from your machine." | |
| 16 | 16 | |||
| o.on("--all", "Remove everything possible.") { all = true } | 17 | 17 | o.on("--all", "Remove everything possible.") { all = true } | |
| o.on("--force", "Actually do it.") { force = true } | 18 | 18 | o.on("--force", "Actually do it.") { force = true } | |
| o.on("--help", "Show this help.") { abort o.to_s } | 19 | 19 | o.on("--help", "Show this help.") { abort o.to_s } | |
| o.on("--opt", "Remove /opt/boxen.") { opt = true } | 20 | 20 | o.on("--opt", "Remove /opt/boxen.") { opt = true } | |
| o.on("--services", "Remove and unload services.") { services = true } | 21 | 21 | o.on("--services", "Remove and unload services.") { services = true } | |
| o.on("--receipts", "Remove package receipts used by Puppet.") { receipts = true } | 22 | 22 | o.on("--receipts", "Remove package receipts used by Puppet.") { receipts = true } | |
| o.on("--gitconfig", "Remove Boxen-provided git credential helper config.") { gitconfig = true } | 23 | 23 | o.on("--gitconfig", "Remove Boxen-provided git credential helper config.") { gitconfig = true } | |
| 24 | 24 | |||
| o.parse! | 25 | 25 | o.parse! | |
| 26 | 26 | |||
| abort o.to_s unless all || opt || services | 27 | 27 | abort o.to_s unless all || opt || services | |
| end | 28 | 28 | end | |
| 29 | 29 | |||
| unless force | 30 | 30 | unless force | |
| warn "** I won't actually do anything unless you pass --force." | 31 | 31 | warn "** I won't actually do anything unless you pass --force." | |
| end | 32 | 32 | end | |
| 33 | 33 | |||
| if all || services | 34 | 34 | if all || services | |
| boxen_services = [] | 35 | 35 | boxen_services = [] | |
| boxen_services << Dir["/Library/Launch*/dev.*.plist"] | 36 | 36 | boxen_services << Dir["/Library/Launch*/dev.*.plist"] | |
| 37 | 37 | |||
| boxen_services.flatten.each do |plist| | 38 | 38 | boxen_services.flatten.each do |plist| | |
| warn "-> Removing #{plist}." | 39 | 39 | warn "-> Removing #{plist}." | |
| 40 | 40 | |||
| if force | 41 | 41 | if force | |
| system "launchctl", "unload", "-w", plist | 42 | 42 | system "launchctl", "unload", "-w", plist | |
| system "rm", "-f", plist | 43 | 43 | system "rm", "-f", plist | |
| end | 44 | 44 | end | |
| end | 45 | 45 | end | |
| 46 | 46 | |||
| system "rm", "-f", "/etc/resolver/dev" | 47 | 47 | system "rm", "-f", "/etc/resolver/dev" | |
| end | 48 | 48 | end | |
| 49 | 49 | |||
| if all || opt | 50 | 50 | if all || opt |