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)) }