class ChefCLI::Policyfile::StorageConfig
@attr_reader [String] policyfile_lock_filename Filename of compiled Policyfile.
@attr_reader [String] policyfile_filename Uncompiled Policyfile filename.
@attr_accessor [String] cache_path Local cache directory for
@attr_accessor [String] relative_paths_root Root path relative to the named Policyfile
@since 0.11.0
@author Dan DeLeo
Policyfile artifacts.
are specified relative to the Policyfile and local caching of compiled
Provides handling of relative paths, such as on disk cookbooks which
def handle_options(options)
def handle_options(options) @cache_path = options[:cache_path] if options[:cache_path] @relative_paths_root = options[:relative_paths_root] if options.key?(:relative_paths_root) end
def initialize(options = {})
def initialize(options = {}) @relative_paths_root = Dir.pwd @cache_path = CookbookOmnifetch.storage_path @policyfile_filename = "<< Policyfile filename not specified >>" @policyfile_lock_filename = "<< Policyfile lock filename not specified >>" handle_options(options) end
def policyfile_expanded_path
def policyfile_expanded_path File.expand_path(policyfile_filename, relative_paths_root) end
def policyfile_lock_expanded_path
def policyfile_lock_expanded_path File.expand_path(policyfile_lock_filename, relative_paths_root) end
def use_policyfile(policyfile_filename)
def use_policyfile(policyfile_filename) if policyfile_filename.end_with?(".lock.json") return use_policyfile_lock(policyfile_filename) end unless policyfile_filename.end_with?(".rb") raise InvalidPolicyfileFilename, "Policyfile filenames must end with an `.rb' or `.lock.json' extension (you gave: `#{policyfile_filename}')" end @policyfile_filename = policyfile_filename @policyfile_lock_filename = policyfile_filename.sub(/\.rb\Z/, ".lock.json") @relative_paths_root = File.dirname(policyfile_filename) self end
def use_policyfile_lock(policyfile_lock_filename)
def use_policyfile_lock(policyfile_lock_filename) @policyfile_lock_filename = policyfile_lock_filename @policyfile_filename = policyfile_lock_filename.sub(/\.lock\.json\Z/, ".rb") @relative_paths_root = File.dirname(policyfile_lock_filename) self end