diff options
| author | Paul Buetow <paul@buetow.org> | 2024-12-06 23:52:43 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-12-06 23:52:43 +0200 |
| commit | 7c23b27007ca62ff545411aa3d1200fce4eec8c9 (patch) | |
| tree | 86e4215580368b5c6f164bb79c2a0f91f479c7f1 /lib/autorequire | |
| parent | 36c00a4509e745e4b29b1194faca4dca830a9b95 (diff) | |
refactor
Diffstat (limited to 'lib/autorequire')
| -rw-r--r-- | lib/autorequire/config.rb | 18 | ||||
| -rw-r--r-- | lib/autorequire/file.rb | 78 | ||||
| -rw-r--r-- | lib/autorequire/log.rb | 24 | ||||
| -rw-r--r-- | lib/autorequire/only_when.rb | 37 | ||||
| -rw-r--r-- | lib/autorequire/options.rb | 23 |
5 files changed, 0 insertions, 180 deletions
diff --git a/lib/autorequire/config.rb b/lib/autorequire/config.rb deleted file mode 100644 index b9dc5ac..0000000 --- a/lib/autorequire/config.rb +++ /dev/null @@ -1,18 +0,0 @@ -require 'toml' - -module RCM - # Configuration - module Config - @@config = File.exist?('config.toml') ? TOML.load_file('config.toml') : {} - - def config(key) - raise "No such config key: #{key}" unless @@config.key?(key) - - @@config[key] - end - - def dump_config - p @@config - end - end -end diff --git a/lib/autorequire/file.rb b/lib/autorequire/file.rb deleted file mode 100644 index 35df33f..0000000 --- a/lib/autorequire/file.rb +++ /dev/null @@ -1,78 +0,0 @@ -require 'erb' -require 'fileutils' - -require_relative 'options' -require_relative 'log' - -module RCM - # Managing files - class File - attr_reader :id, :path - - include Options - include Log - - def initialize(path) - @id = "#{self.class}(#{path})" - @path = path - end - - def to_s - id - end - - def content(content = nil) - content.nil? ? @content : @content = content - end - - def create_parent_directory - @create_parent = true - self - end - - def from_file(...) - @from_file = true - self - end - - def from_template(...) - @from_template = true - self - end - - def do! - content = file_content - - dirname = ::File.dirname(@path) - if !::File.directory?(dirname) && @create_parent - info "Creating parent directory #{parent}" - FileUtils.mkdir_p(dirname) - end - - info "Creating file #{@path}" - debug content if option :debug - - tmp_path = "#{@path}.tmp" - ::File.write(tmp_path, content) - ::File.rename(tmp_path, @path) - end - - private - - def file_content - content = @from_file ? ::File.read(@content) : @content - @from_template ? ERB.new(content).result : content - end - end - - # Add file keyword to the DSL - class RCM - def file(path, &block) - return unless @conds_met - - f = File.new(path) - f.instance_eval(&block) - self << f - end - end -end diff --git a/lib/autorequire/log.rb b/lib/autorequire/log.rb deleted file mode 100644 index 67ff321..0000000 --- a/lib/autorequire/log.rb +++ /dev/null @@ -1,24 +0,0 @@ -require 'logger' - -module RCM - module Log - @@logger = Logger.new(STDOUT) - - def info(message) - @@logger.info("#{id} => #{message}") - end - - def warn(message) - @@logger.warn("#{id} => #{message}") - end - - def fatal_exit(message) - @@logger.fatal("#{id} => #{message}") - exit 2 - end - - def debug(message) - @@logger.debug("#{id} => #{message}") - end - end -end diff --git a/lib/autorequire/only_when.rb b/lib/autorequire/only_when.rb deleted file mode 100644 index 2700bee..0000000 --- a/lib/autorequire/only_when.rb +++ /dev/null @@ -1,37 +0,0 @@ -module RCM - # OnlyWhen (e.g. run on host foo) - class OnlyWhen - require 'socket' - - def initialize - @conds = {} - end - - def is(arg) - arg - end - - def method_missing(method_name, *args, &block) - @conds[method_name] = args.first - end - - def respond_to_missing? - true - end - - def met? - return false if @conds.key?(:hostname) && Socket.gethostname != @conds[:hostname].to_s - - true - end - end - - # Add 'only_when' to DSL - class RCM - def only_when(&block) - conds = OnlyWhen.new - conds.instance_eval(&block) - @conds_met = conds.met? - end - end -end diff --git a/lib/autorequire/options.rb b/lib/autorequire/options.rb deleted file mode 100644 index c3950ca..0000000 --- a/lib/autorequire/options.rb +++ /dev/null @@ -1,23 +0,0 @@ -require 'optparse' - -module RCM - # Command line options - module Options - @@options = { - debug: false - } - - after_double_dash = ARGV.slice_before('--').to_a.last.drop(1) - - OptionParser.new do |opts| - opts.banner = 'Usage: rake [task] -- [options]' - opts.on('-v', '--[no-]debug', 'debug output') { |v| @@options[:debug] = v } - end.parse!(after_double_dash) - - def option(key) - raise "No such option: #{key}" unless @@options.key?(key) - - @@options[key] - end - end -end |
