Sha256: add528cdbf3e48c0050884a16140648f0f56b098886d37fa0e768ce5cb8fdbc7

Contents?: true

Size: 882 Bytes

Versions: 4

Compression:

Stored size: 882 Bytes

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.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

4 entries across 4 versions & 1 rubygems

Version Path
linux_admin-0.18.0 lib/linux_admin/time_date.rb
linux_admin-0.17.0 lib/linux_admin/time_date.rb
linux_admin-0.16.0 lib/linux_admin/time_date.rb
linux_admin-0.15.0 lib/linux_admin/time_date.rb