Class: IStats::Command

Inherits:
Object
  • Object
show all
Extended by:
Color
Defined in:
lib/iStats/command.rb

Overview

Main point of entry for ‘istats` command-line tool

Constant Summary

Constants included from Color

IStats::Color::CODES

Class Method Summary collapse

Methods included from Color

colorize, included

Class Method Details

.allObject

Execute all the stats methodes for all modules



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/iStats/command.rb', line 53

def all
  puts "--- CPU Stats ---\n"
  Cpu.all
  puts "\n--- Fan Stats ---\n"
  Fan.all
  puts "\n--- Battery Stats ---\n"
  Battery.all

  sensors = $config.params
  if sensors.keys.any? {|key| sensors[key]['enabled'] == "1"}
    puts "\n--- Extra Stats ---\n"
    Extra.all
  else
    puts "\nFor more stats run `istats extra` and follow the instructions."
  end
end

.delegate(category, stat) ⇒ Object

Delegate command to proper class

category - Hardware we are targeting (CPU, fan, etc.) stat - The stat we want



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/iStats/command.rb', line 26

def delegate(category, stat)
  case category
  when 'all'
    all
  when 'cpu'
    Cpu.delegate stat
  when 'fan'
    Fan.delegate stat
  when 'battery'
    Battery.delegate stat
  when 'extra'
    Extra.delegate stat
  when 'scan'
    SMC.delegate stat
  when 'enable'
    Settings.delegate ['enable',stat]
  when 'disable'
    Settings.delegate ['disable',stat]
  when 'list'
    Settings.list
  else
    help("Unknown category: #{category}")
  end
end

.execute(*args) ⇒ Object

Executes a command

args - Command line arguments



11
12
13
14
15
16
17
18
19
# File 'lib/iStats/command.rb', line 11

def execute(*args)
  # Default command is 'all'
  category = args.empty? ? 'all' : args.shift
  stat     = args.empty? ? 'all' : args.shift

  Settings.load;
  parse_options
  delegate(category, stat)
end

.help(error = nil) ⇒ Object

Public: Prints help.

Returns nothing.



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/iStats/command.rb', line 98

def help(error = nil)
  text =
  " #{error.nil? ? '' : red("\n[Error] #{error}\n")}
    - iStats: help ---------------------------------------------------

    istats --help                            This help text
    istats --version                         Print current version

    istats all                               Print all stats
    istats cpu                               Print all CPU stats
    istats cpu [temp | temperature]          Print CPU temperature
    istats fan                               Print all fan stats
    istats fan [speed]                       Print fan speed
    istats battery                           Print all battery stats
    istats battery [health]                  Print battery health
    istats battery [time | remain]           Print battery time remaining
    istats battery [cycle_count | cc]        Print battery cycle count info
    istats battery [temp | temperature]      Print battery temperature
    istats battery [charge]                  Print battery charge
    istats battery [capacity]                Print battery capacity info
      
    istats scan                              Scans and print temperatures
    istats scan [key]                        Print single SMC temperature key
    istats enable [key | all]                Enables key
    istats disable [key | all]               Disable key
    istats list                              List available keys

    for more help see: https://github.com/Chris911/iStats
  ".gsub(/^ {8}/, '') # strip the first eight spaces of every line

  puts text
end

.parse_optionsObject

Public: Parse extra options

returns nothing



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/iStats/command.rb', line 73

def parse_options
  o = OptionParser.new do |opts|
    opts.on('-v', '--version', 'Print Version') do
      puts "iStats v#{IStats::VERSION}"
      quit
    end
    opts.on('-h', '--help', 'Print Help') do
      help
      quit
    end
  end
  begin
    o.parse!
  rescue OptionParser::MissingArgument => e
    help e.message
    quit
  rescue OptionParser::InvalidOption => e
    help e.message
    quit
  end
end

.quitObject

Public: Quit / Exit program

Returns nothing



134
135
136
# File 'lib/iStats/command.rb', line 134

def quit
  exit(1)
end