Class: VagrantPlugins::TimeZone::Cap::Linux

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-timezone/cap/linux.rb

Overview

Generic Linix capability for changing time zone

Direct Known Subclasses

Debian, Gentoo, RedHat

Class Method Summary collapse

Class Method Details

.change_timezone(machine, timezone) ⇒ Object

Set the time zone. Uses ‘timedatectl` if found.



10
11
12
13
14
15
16
# File 'lib/vagrant-timezone/cap/linux.rb', line 10

def self.change_timezone(machine, timezone)
  if timedatectl?(machine)
    change_timezone_timedatectl(machine, timezone)
  else
    change_timezone_generic(machine, timezone)
  end
end

.change_timezone_generic(machine, timezone) ⇒ Object

Set the time zone if ‘timedatectl` is not found. Defaults to `Unix.change_timezone`, but is overridden by distro specific classes.



29
30
31
# File 'lib/vagrant-timezone/cap/linux.rb', line 29

def self.change_timezone_generic(machine, timezone)
  Unix.change_timezone(machine, timezone)
end

.change_timezone_timedatectl(machine, timezone) ⇒ Object



22
23
24
# File 'lib/vagrant-timezone/cap/linux.rb', line 22

def self.change_timezone_timedatectl(machine, timezone)
  machine.communicate.sudo("timedatectl set-timezone '#{timezone}'")
end

.timedatectl?(machine) ⇒ Boolean



18
19
20
# File 'lib/vagrant-timezone/cap/linux.rb', line 18

def self.timedatectl?(machine)
  machine.communicate.test('which timedatectl', sudo: true)
end