From ecd7c14c5ec0e235bac48a313feda2e4af9fd530 Mon Sep 17 00:00:00 2001 From: Antonin Hildebrand Date: Sun, 24 May 2015 13:34:51 +0800 Subject: [PATCH] Include OS version and build number in panic backup folder name As suggested by @mralexgray --- ctl/cmd/install_wrapper.rb | 3 ++- ctl/lib/helpers.rb | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ctl/cmd/install_wrapper.rb b/ctl/cmd/install_wrapper.rb index f7c3382..dd8505a 100644 --- a/ctl/cmd/install_wrapper.rb +++ b/ctl/cmd/install_wrapper.rb @@ -29,7 +29,8 @@ def cmd_install_wrapper(options) # make timestamped panic backup timestamp = Time.now.strftime("%Y%m%d%H%M%S") - panic_backup_folder_with_timestamp = "#{DS_LIB_PANIC_BACKUP_FOLDER}_#{timestamp}" + os_marker = os_version_marker() + panic_backup_folder_with_timestamp = "#{DS_LIB_PANIC_BACKUP_FOLDER}_#{os_marker}_#{timestamp}" unless File.exists? panic_backup_folder_with_timestamp then sys("sudo cp -a \"#{DS_LIB_FOLDER}\" \"#{panic_backup_folder_with_timestamp}\"") end diff --git a/ctl/lib/helpers.rb b/ctl/lib/helpers.rb index 6041b91..38837c5 100644 --- a/ctl/lib/helpers.rb +++ b/ctl/lib/helpers.rb @@ -110,4 +110,19 @@ def prior_yosemite? def desktopservicespriv_wrapper?(file) # this is simple and stupid test: our wrapper library is small, under 100kb File.size(file) <= 100*1024 +end + +def safe_string_to_filename(s) + s.gsub(/[^a-zA-Z0-9]/, "_").gsub(/_+/, "_") +end + +def os_version_marker() + begin + vers = `sw_vers`.split("\n") + os_version = vers[1].match(/:\s*(.*)/)[1] + build_version = vers[2].match(/:\s*(.*)/)[1] + safe_string_to_filename("#{os_version}_#{build_version}") + rescue + "" + end end \ No newline at end of file