Sha256: 972fc6c360784767fcd830adf6925a44fd464e8ec7f71746d5c5d970cbae8f88

Contents?: true

Size: 1.17 KB

Versions: 5

Compression:

Stored size: 1.17 KB

Contents

require 'pp'

require 'CFPropertyList'

require 'nrser'
require 'nrser/exec'

using NRSER

module StateMate; end;
module StateMate::Adapters; end

module StateMate::Adapters::TimeMachine
  EXE = '/usr/bin/tmutil'
  PLIST_PATH = '/Library/Preferences/com.apple.TimeMachine.plist'

  def self.local_enabled?
    # seems to change the key
    #
    #     /Library/Preferences/com.apple.TimeMachine.plist:MobileBackups
    # 
    plist = CFPropertyList::List.new file: PLIST_PATH
    data = CFPropertyList.native_types plist.value
    data['MobileBackups']
  end

  def self.enable_local
    NRSER::Exec.run "%{exe} enablelocal", exe: EXE
  end

  def self.disable_local
    NRSER::Exec.run "%{exe} disablelocal", exe: EXE
  end

  def self.read key, options = {}
    case key
    when 'local_backups'
      local_enabled?
    else
     raise "bad key: #{ key.inspect }"
    end
  end

  def self.write key, value, options = {}
    case key
    when 'local_backups'
      case value
      when true
        enable_local
      when false
        disable_local
      else
        raise "bad value: #{ value.inspect }"
      end
    else
      raise "bad key: #{ key.inspect }"
    end
  end

end # TimeMachine

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
state_mate-0.0.5 lib/state_mate/adapters/time_machine.rb
state_mate-0.0.4 lib/state_mate/adapters/time_machine.rb
state_mate-0.0.3 lib/state_mate/adapters/time_machine.rb
state_mate-0.0.2 lib/state_mate/adapters/time_machine.rb
state_mate-0.0.1 lib/state_mate/adapters/time_machine.rb