lib/synvert/cli.rb in synvert-0.0.16 vs lib/synvert/cli.rb in synvert-0.0.17

- old
+ new

@@ -14,10 +14,11 @@ end # Initialize a CLI. def initialize @options = {command: 'run', snippet_paths: [], snippet_names: []} + Configuration.instance.set :skip_files, [] end # Run the CLI. # @param args [Array] arguments. # @return [Boolean] true if command runs successfully. @@ -65,10 +66,13 @@ end opts.on '-q', '--query QUERY', 'query specified snippets' do |query| @options[:command] = 'query' @options[:query] = query end + opts.on '--skip FILE_PATTERNS', 'skip specified files or directories, separated by comma, e.g. app/models/post.rb,vendor/plugins/**/*.rb' do |file_patterns| + @options[:skip_file_patterns] = file_patterns.split(',') + end opts.on '-s', '--show SNIPPET_NAME', 'show specified snippet description' do |snippet_name| @options[:command] = 'show' @options[:snippet_name] = snippet_name end opts.on '-r', '--run SNIPPET_NAMES', 'run specified snippets' do |snippet_names| @@ -79,9 +83,16 @@ exit end end paths = optparse.parse(args) Configuration.instance.set :path, paths.first || Dir.pwd + if @options[:skip_file_patterns] && !@options[:skip_file_patterns].empty? + skip_files = @options[:skip_file_patterns].map { |file_pattern| + full_file_pattern = File.join(Configuration.instance.get(:path), file_pattern) + Dir.glob(full_file_pattern) + }.flatten + Configuration.instance.set :skip_files, skip_files + end end # Load all rewriters. def load_rewriters Dir.glob(File.join(File.dirname(__FILE__), 'snippets/**/*.rb')).each { |file| eval(File.read(file)) }