Sha256: 60b5abffbdf5b3b217ced1a564ac19d2307953500268e838520109f2cb43e967
Contents?: true
Size: 1.6 KB
Versions: 4
Compression:
Stored size: 1.6 KB
Contents
require 'chef_fs/file_system/chef_server_root_dir' require 'chef_fs/file_system/chef_repository_file_system_root_dir' require 'chef_fs/file_pattern' require 'chef_fs/path_utils' require 'chef/config' module ChefFS class Knife < Chef::Knife def self.common_options option :repo_mode, :long => '--repo-mode MODE', :default => "default", :description => "Specifies the local repository layout. Values: default or full" end def base_path @base_path ||= begin relative_to_base = ChefFS::PathUtils::relative_to(File.absolute_path(Dir.pwd), chef_repo) relative_to_base == '.' ? '/' : "/#{relative_to_base}" end end def chef_fs @chef_fs ||= ChefFS::FileSystem::ChefServerRootDir.new("remote", Chef::Config, config[:repo_mode]) end def chef_repo @chef_repo ||= File.absolute_path(File.join(Chef::Config.cookbook_path, "..")) end def format_path(path) if path[0,base_path.length] == base_path if path == base_path return "." elsif path[base_path.length] == "/" return path[base_path.length + 1, path.length - base_path.length - 1] elsif base_path == "/" && path[0] == "/" return path[1, path.length - 1] end end path end def local_fs @local_fs ||= ChefFS::FileSystem::ChefRepositoryFileSystemRootDir.new(chef_repo) end def pattern_args @pattern_args ||= pattern_args_from(name_args) end def pattern_args_from(args) args.map { |arg| ChefFS::FilePattern::relative_to(base_path, arg) }.to_a end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
knife-essentials-0.7.2 | lib/chef_fs/knife.rb |
knife-essentials-0.7.1 | lib/chef_fs/knife.rb |
knife-essentials-0.7 | lib/chef_fs/knife.rb |
knife-essentials-0.6.1 | lib/chef_fs/knife.rb |