Class: AptControl::CLI::Status

Inherits:
Object
  • Object
show all
Includes:
Common
Defined in:
lib/apt_control/cli/status.rb

Instance Method Summary collapse

Methods included from Common

#apt_site, #build_archive, #control_file, #each_package_state, #logger, #notifier, #notify, #validate_config!

Instance Method Details

#runObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/apt_control/cli/status.rb', line 9

def run
  validate_config!

  control_file.distributions.each do |dist|
    puts dist.name unless options[:machine_readable]
    dist.package_rules.each do |rule|
      included = apt_site.included_version(dist.name, rule.package_name)
      available = build_archive[rule.package_name]

      satisfied = included && rule.satisfied_by?(included)
      upgradeable = available && rule.upgradeable?(included, available)

      if options[:machine_readable]
        fields = [
          dist.name,
          rule.package_name,
          "(#{rule.restriction} #{rule.version})",
          "#{upgradeable ? 'U' : '.'}#{satisfied ? 'S' : '.'}",
          "included=#{included || '<none>'}",
          "available=#{available && available.join(', ') || '<none>'} "
        ]
        puts fields.join(' ')
      else
        puts "  #{rule.package_name}"
        puts "    rule       - #{rule.restriction} #{rule.version}"
        puts "    included   - #{included}"
        puts "    available  - #{available && available.join(', ')}"
        puts "    satisfied  - #{satisfied}"
        puts "    upgradeable - #{upgradeable}"
      end
    end
  end
end