diff options
Diffstat (limited to 'lib/leap_cli')
-rw-r--r-- | lib/leap_cli/commands/deploy.rb | 2 | ||||
-rw-r--r-- | lib/leap_cli/path.rb | 26 |
2 files changed, 21 insertions, 7 deletions
diff --git a/lib/leap_cli/commands/deploy.rb b/lib/leap_cli/commands/deploy.rb index 855a820..6589837 100644 --- a/lib/leap_cli/commands/deploy.rb +++ b/lib/leap_cli/commands/deploy.rb @@ -264,7 +264,7 @@ module LeapCli end if prefix - includes.map! {|path| path.sub(/^#{Regexp.escape(prefix)}/, '')} + includes.map! {|path| path.sub(/^#{Regexp.escape(prefix)}\//, '/')} end return includes diff --git a/lib/leap_cli/path.rb b/lib/leap_cli/path.rb index cd0e169..1f6726a 100644 --- a/lib/leap_cli/path.rb +++ b/lib/leap_cli/path.rb @@ -26,15 +26,29 @@ module LeapCli; module Path end # - # tries to find a file somewhere + # Tries to find a file somewhere. + # Path can be a named path or a relative path. + # + # relative paths are checked against + # provider/<path> + # provider/files/<path> + # provider_base/<path> + # provider_base/files/<path> + # # def self.find_file(arg) [Path.provider, Path.provider_base].each do |base| - file_path = named_path(arg, base) - return file_path if File.exists?(file_path) - if arg.is_a? String - file_path = base + '/files/' + arg - return file_path if File.exists?(file_path) + if arg.is_a?(Symbol) || arg.is_a?(Array) + named_path(arg, base).tap {|path| + return path if File.exists?(path) + } + else + File.join(base, arg).tap {|path| + return path if File.exists?(path) + } + File.join(base, 'files', arg).tap {|path| + return path if File.exists?(path) + } end end return nil |