summaryrefslogtreecommitdiff
path: root/lib/autorequire
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-12-06 23:52:43 +0200
committerPaul Buetow <paul@buetow.org>2024-12-06 23:52:43 +0200
commit7c23b27007ca62ff545411aa3d1200fce4eec8c9 (patch)
tree86e4215580368b5c6f164bb79c2a0f91f479c7f1 /lib/autorequire
parent36c00a4509e745e4b29b1194faca4dca830a9b95 (diff)
refactor
Diffstat (limited to 'lib/autorequire')
-rw-r--r--lib/autorequire/config.rb18
-rw-r--r--lib/autorequire/file.rb78
-rw-r--r--lib/autorequire/log.rb24
-rw-r--r--lib/autorequire/only_when.rb37
-rw-r--r--lib/autorequire/options.rb23
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