Sha256: 2d7a4376e40e0c339d52bba3c10e5f558fc49ee4a33e29f04a15229bb0d60fe3

Contents?: true

Size: 1.09 KB

Versions: 17

Compression:

Stored size: 1.09 KB

Contents

module LinuxAdmin
  class TimeDate
    COMMAND = 'timedatectl'

    TimeCommandError = Class.new(StandardError)

    def self.system_timezone_detailed
      result = Common.run(Common.cmd(COMMAND), :params => ["status"])
      result.output.split("\n").each do |l|
        return l.split(':')[1].strip if l =~ /Time.*zone/
      end
    end

    def self.system_timezone
      system_timezone_detailed.split[0]
    end

    def self.timezones
      result = Common.run!(Common.cmd(COMMAND), :params => ["list-timezones"])
      result.output.split("\n")
    rescue AwesomeSpawn::CommandResultError => e
      raise TimeCommandError, e.message
    end

    def self.system_time=(time)
      Common.run!(Common.cmd(COMMAND), :params => ["set-time", "#{time.strftime("%F %T")}", :adjust_system_clock])
    rescue AwesomeSpawn::CommandResultError => e
      raise TimeCommandError, e.message
    end

    def self.system_timezone=(zone)
      Common.run!(Common.cmd(COMMAND), :params => ["set-timezone", zone])
    rescue AwesomeSpawn::CommandResultError => e
      raise TimeCommandError, e.message
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
linux_admin-4.0.0 lib/linux_admin/time_date.rb
linux_admin-3.0.0 lib/linux_admin/time_date.rb
linux_admin-2.0.2 lib/linux_admin/time_date.rb
linux_admin-2.0.1 lib/linux_admin/time_date.rb
linux_admin-2.0.0 lib/linux_admin/time_date.rb
linux_admin-1.2.4 lib/linux_admin/time_date.rb
linux_admin-1.2.3 lib/linux_admin/time_date.rb
linux_admin-1.2.2 lib/linux_admin/time_date.rb
linux_admin-1.2.1 lib/linux_admin/time_date.rb
linux_admin-1.0.1 lib/linux_admin/time_date.rb
linux_admin-1.2.0 lib/linux_admin/time_date.rb
linux_admin-1.1.0 lib/linux_admin/time_date.rb
linux_admin-1.0.0 lib/linux_admin/time_date.rb
linux_admin-0.20.2 lib/linux_admin/time_date.rb
linux_admin-0.20.1 lib/linux_admin/time_date.rb
linux_admin-0.20.0 lib/linux_admin/time_date.rb
linux_admin-0.19.0 lib/linux_admin/time_date.rb