lib/xcodeproj/command/sort.rb
module Xcodeproj
class Command
class Sort < Command
self.description = <<-eos
Sorts the given project.
If no `PROJECT' is specified then the current work directory is searched for one.
eos
self.summary = 'Sorts the given project.'
def self.options
[
['--group-option=[above|below]', 'The position of the groups when sorting. If no option is specified, sorting will interleave groups and files.'],
].concat(super)
end
self.arguments = [
CLAide::Argument.new('PROJECT', false),
]
def initialize(argv)
self.xcodeproj_path = argv.shift_argument
@group_option = argv.option('group-option')
@group_option &&= @group_option.to_sym
super
end
def validate!
super
unless [nil, :above, :below].include?(@group_option)
help! "Unknown format `#{@group_option}`"
end
open_project!
end
def run
xcodeproj.sort(:groups_position => @group_option)
xcodeproj.save
puts "The `#{File.basename(xcodeproj_path)}` project was sorted"
end
end
end
end