Module: Machinery
- Defined in:
- lib/ui.rb,
lib/cli.rb,
lib/hint.rb,
lib/array.rb,
lib/scope.rb,
lib/config.rb,
lib/filter.rb,
lib/helper.rb,
lib/object.rb,
lib/version.rb,
lib/renderer.rb,
lib/constants.rb,
lib/exceptions.rb,
lib/diff_widget.rb,
lib/system_file.rb,
lib/machinery_logger.rb
Overview
Copyright © 2013-2016 SUSE LLC
This program is free software; you can redistribute it and/or modify it under the terms of version 3 of the GNU General Public License as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, contact SUSE LLC.
To contact SUSE about this file by physical or electronic mail, you may find current contact information at www.suse.com
Defined Under Namespace
Modules: Errors, Scope, ScopeFileAccessArchive, ScopeFileAccessFlat Classes: AnalyzeConfigFileDiffsTask, Array, Autoyast, BuildTask, Cli, CompareTask, Comparison, Config, ConfigBase, ConfigTask, ContainerizeTask, ContainerizedApp, CopyTask, CurrentUser, DeployTask, DockerSystem, DpkgDatabase, ElementFilter, ExportTask, Exporter, FileDiff, FileScope, FileValidator, Filter, FilterOptionParser, Html, InspectTask, Inspector, JsonValidationErrorCleaner, JsonValidator, KiwiConfig, ListTask, LocalSystem, LoggedCheetah, ManTask, ManagedFilesDatabase, Manifest, Migration, MountPoints, MoveTask, Object, RemoteSystem, RemoveTask, Rpm, RpmDatabase, ScopeFileStore, ServeHtmlTask, ShowTask, StaticHtml, System, SystemDescription, SystemDescriptionMemoryStore, SystemDescriptionStore, SystemFile, Tarball, Ui, UpgradeFormatTask, ValidateTask, WorkloadMapper, WorkloadMapperDSL, Zypper
Constant Summary collapse
- VERSION =
"1.24.1"
- ROOT =
File.("..", File.dirname(__FILE__))
- DEFAULT_CONFIG_DIR =
File.join(ENV['HOME'], ".machinery")
- DEFAULT_LOG_FILE =
File.join(DEFAULT_CONFIG_DIR, "machinery.log")
- DEFAULT_CONFIG_FILE =
File.join(DEFAULT_CONFIG_DIR, "machinery.config")
- IMAGE_META_DATA_FILE =
"machinery.meta"
- HELPER_REMOTE_PATH =
"~".freeze
- @@logger =
nil
Class Method Summary collapse
- .content_is_binary?(content) ⇒ Boolean
- .initialize_logger(log_file) ⇒ Object
- .is_int?(string) ⇒ Boolean
- .logger ⇒ Object
- .pluralize(count, singular, plural = nil) ⇒ Object
-
.scrub(s) ⇒ Object
Implementation of String#scrub for Ruby < 2.1.
Class Method Details
.content_is_binary?(content) ⇒ Boolean
23 24 25 26 27 28 29 |
# File 'lib/helper.rb', line 23 def self.content_is_binary?(content) !Cheetah.run("file", "-b", "-", stdout: :capture, stdin: content).include?(" text") # newer versions of file exit != 0 when some ELF files are sliced # the file type is still provided besides the exit code rescue Cheetah::ExecutionFailed => e !e.stdout.include?(" text") end |
.initialize_logger(log_file) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/machinery_logger.rb', line 21 def self.initialize_logger(log_file) # We rotate one old log file of 21 MB if File.exist?(log_file) && File.size(log_file) > 21 * 1024 * 1024 rotated_file = log_file + ".0" FileUtils.rm(rotated_file) if File.exist?(rotated_file) FileUtils.mv(log_file, rotated_file) end unless File.exist?(log_file) dirname = File.dirname(log_file) unless Dir.exist?(dirname) FileUtils.mkdir_p(dirname) File.chmod(0700, dirname) end FileUtils.touch(log_file) FileUtils.chmod(0600, log_file) end @@logger = Logger.new(log_file) end |
.is_int?(string) ⇒ Boolean
19 20 21 |
# File 'lib/helper.rb', line 19 def self.is_int?(string) (string =~ /^\d+$/) != nil end |
.logger ⇒ Object
42 43 44 45 46 |
# File 'lib/machinery_logger.rb', line 42 def self.logger initialize_logger(DEFAULT_LOG_FILE) unless @@logger @@logger end |
.pluralize(count, singular, plural = nil) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/helper.rb', line 43 def self.pluralize(count, singular, plural = nil) val = if count > 1 || count == 0 if !plural singular + "s" else plural end else singular end val.gsub("%d", count.to_s) end |
.scrub(s) ⇒ Object
Implementation of String#scrub for Ruby < 2.1. Assumes the string is in UTF-8.
33 34 35 36 37 38 39 40 41 |
# File 'lib/helper.rb', line 33 def self.scrub(s) # We have a string in UTF-8 with possible invalid byte sequences. It turns # out that String#encode can remove these sequences when given appropriate # options, but just converting into UTF-8 would be a no-op. So let's convert # into UTF-16 (which has the same character set as UTF-8) and back. # # See also: http://stackoverflow.com/a/21315619 s.dup.force_encoding("UTF-8").encode("UTF-16", invalid: :replace).encode("UTF-8") end |