Class: Slackware::System
- Inherits:
-
Object
- Object
- Slackware::System
- Defined in:
- lib/slackware/system.rb
Class Method Summary collapse
- .arch_used ⇒ Object
-
.debug(msg) ⇒ Object
A debug log helper.
- .find_installed(name) ⇒ Object
- .find_removed(name) ⇒ Object
-
.installed_after(time) ⇒ Object
Return an Array of packages, that were installed after provided
time(“installed” meaning the file’s mtime). -
.installed_before(time) ⇒ Object
Return an Array of packages, that were installed before provided
time(“installed” meaning the file’s mtime). - .installed_packages ⇒ Object
- .installed_scripts ⇒ Object
-
.is_upgraded?(pkg) ⇒ Boolean
Check whether a given Slackware::Package has been upgraded before.
-
.owns_file(file) ⇒ Object
Search installation of Slackware::Package’s for what owns the questioned file Returns an Array, of matching pairs.
-
.removed_after(time) ⇒ Object
Return an Array of packages, that were removed after provided
time. -
.removed_before(time) ⇒ Object
Return an Array of packages, that were removed before provided
time. - .removed_packages ⇒ Object
- .removed_scripts ⇒ Object
- .tags_used ⇒ Object
-
.upgrades(pkg) ⇒ Object
Returns a list of the upgrades for a particular package name Example: Slackware::System.upgrades(“xz”) => [#<Slackware::Package:0x981e6c name=“xz” version=“5.0.0” arch=“x86_64” build=1 tag=“”>, #<Slackware::Package:0x97e04c name=“xz” version=“4.999.9beta” arch=“x86_64” build=1 tag=“”>] Slackware::System.upgrades(“fart”) => [].
-
.version ⇒ Object
Return the version of Slackware Linux currently installed.
- .with_arch(arch) ⇒ Object
- .with_tag(tag) ⇒ Object
Class Method Details
.arch_used ⇒ Object
78 79 80 |
# File 'lib/slackware/system.rb', line 78 def self::arch_used return installed_packages().map {|p| p.arch }.uniq end |
.debug(msg) ⇒ Object
A debug log helper
38 39 40 |
# File 'lib/slackware/system.rb', line 38 def self::debug(msg) Slackware::Log.instance.debug(self.name) { msg } end |
.find_installed(name) ⇒ Object
86 87 88 89 |
# File 'lib/slackware/system.rb', line 86 def self::find_installed(name) d = Dir.new(Paths::installed_packages()) return d.select {|p| p.include?(name) }.map {|p| Package.parse(p) } end |
.find_removed(name) ⇒ Object
91 92 93 94 |
# File 'lib/slackware/system.rb', line 91 def self::find_removed(name) d = Dir.new(Paths::removed_packages()) return d.select {|p| p.include?(name) }.map {|p| Package.parse(p) } end |
.installed_after(time) ⇒ Object
Return an Array of packages, that were installed after provided time (“installed” meaning the file’s mtime)
109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/slackware/system.rb', line 109 def self::installed_after(time) arr = [] Dir.new(Paths::installed_packages()).each {|p| if (File.mtime(Paths::installed_packages(p)) >= time) pkg = Package.parse(p) pkg.get_time arr << pkg end } return arr end |
.installed_before(time) ⇒ Object
Return an Array of packages, that were installed before provided time (“installed” meaning the file’s mtime)
123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/slackware/system.rb', line 123 def self::installed_before(time) arr = [] Dir.new(Paths::installed_packages()).each {|p| if (File.mtime(Paths::installed_packages(p)) <= time) pkg = Package.parse(p) pkg.get_time arr << pkg end } return arr end |
.installed_packages ⇒ Object
42 43 44 45 |
# File 'lib/slackware/system.rb', line 42 def self::installed_packages path = Paths::installed_packages("*") return Dir.glob(path).sort.map {|p| Package.parse(p) } end |
.installed_scripts ⇒ Object
52 53 54 55 |
# File 'lib/slackware/system.rb', line 52 def self::installed_scripts path = Paths::installed_scripts("*") return Dir.glob(path).sort.map {|s| Script.parse(s) } end |
.is_upgraded?(pkg) ⇒ Boolean
Check whether a given Slackware::Package has been upgraded before
162 163 164 165 166 167 168 |
# File 'lib/slackware/system.rb', line 162 def self::is_upgraded?(pkg) if (find_removed(pkg).map {|p| p.name if p.upgrade_time }.include?(pkg) ) return true else return false end end |
.owns_file(file) ⇒ Object
Search installation of Slackware::Package’s for what owns the questioned file Returns an Array, of matching pairs. The pairs are [Slackware::Package, <matching file>]
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
# File 'lib/slackware/system.rb', line 172 def self::owns_file(file) pkgs = installed_packages() debug('owns_file(): pkgs.count => %d' % pkgs.count) found_files = [] file = file.sub(/^\//, "") # clean off the leading '/' re = /#{file}/ debug('owns_file(): file Regexp => %s' % re.inspect) pkgs.each {|pkg| pkg.get_owned_files().select {|f| begin f =~ re rescue ArgumentError => ex Log.instance.debug(self.name) { "encoding mismatch: " + f } false # this needs to return false, for the .select end }.each do |f| found_files << [pkg, f] end } return found_files end |
.removed_after(time) ⇒ Object
Return an Array of packages, that were removed after provided time
136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/slackware/system.rb', line 136 def self::removed_after(time) arr = [] Dir.new(Paths::removed_packages()).each {|p| if (Paths::installed_packages(p) =~ RE_REMOVED_NAMES) if (Time.strptime($2 + ' ' + $3, fmt=FMT_UPGRADE_TIME) >= time) arr << Package.parse(p) end end } return arr end |
.removed_before(time) ⇒ Object
Return an Array of packages, that were removed before provided time
149 150 151 152 153 154 155 156 157 158 159 |
# File 'lib/slackware/system.rb', line 149 def self::removed_before(time) arr = [] Dir.new(Paths::removed_packages()).each {|p| if (Paths::installed_packages(p) =~ RE_REMOVED_NAMES) if (Time.strptime($2 + ' ' + $3, fmt=FMT_UPGRADE_TIME) <= time) arr << Package.parse(p) end end } return arr end |
.removed_packages ⇒ Object
47 48 49 50 |
# File 'lib/slackware/system.rb', line 47 def self::removed_packages path = Paths::removed_packages("*") return Dir.glob(path).sort.map {|p| Package.parse(p) } end |
.removed_scripts ⇒ Object
57 58 59 60 |
# File 'lib/slackware/system.rb', line 57 def self::removed_scripts path = Paths::removed_scripts("*") return Dir.glob(path).sort.map {|s| Script.parse(s) } end |
.tags_used ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/slackware/system.rb', line 62 def self:: pkgs = installed_packages() set = [] pkgs.map {|p| p.tag }.uniq.each {|tag| m_set = {} m_set[:tag] = tag m_set[:count] = pkgs.select {|p| p.tag == tag }.count set << m_set } return set end |
.upgrades(pkg) ⇒ Object
Returns a list of the upgrades for a particular package name Example:
Slackware::System.upgrades("xz")
=> [#<Slackware::Package:0x981e6c name="xz" version="5.0.0" arch="x86_64" build=1 tag="">,
#<Slackware::Package:0x97e04c name="xz" version="4.999.9beta" arch="x86_64" build=1 tag="">]
Slackware::System.upgrades("fart")
=> []
103 104 105 |
# File 'lib/slackware/system.rb', line 103 def self::upgrades(pkg) find_removed(pkg).select {|p| (p.name == pkg) && (p.upgrade_time) }.sort {|a,b| a.upgrade_time <=> b.upgrade_time } end |
.version ⇒ Object
Return the version of Slackware Linux currently installed
197 198 199 200 |
# File 'lib/slackware/system.rb', line 197 def self::version debug(SLACKWARE_VERSION) SLACKWARE_VERSION end |
.with_arch(arch) ⇒ Object
82 83 84 |
# File 'lib/slackware/system.rb', line 82 def self::with_arch(arch) return installed_packages().select {|pkg| pkg.arch == arch } end |
.with_tag(tag) ⇒ Object
74 75 76 |
# File 'lib/slackware/system.rb', line 74 def self::with_tag(tag) return installed_packages().select {|pkg| pkg.tag == tag } end |