def parse(args)
      args[0] ||= '-h'
      command = Command::ALL[args.first]
      options = OpenStruct.new(file_content: OpenStruct.new)
      init_options_parser(options).parse!(args)
      args.delete_at(0)
      return no_command_supplied unless(command && !options.halt)
      command.args = args
      return parsing_succeeded(command, options) if command.valid?(args)
      parsing_failed(command)
    end
def parse(args)
      args[0] ||= '-h'
      command = Command::ALL[args.first]
      options = OpenStruct.new(file_content: OpenStruct.new)
      init_options_parser(options).parse!(args)
      args.delete_at(0)
      return no_command_supplied unless(command && !options.halt)
      command.args = args
      return parsing_succeeded(command, options) if command.valid?(args)
      parsing_failed(command)
    end
Must have the methods mentioned above


 Return a structure describing the command and its options.
 prints help if no args supplied
 command is the first argument passed in the commandline

 The options specified on the command line will be collected in *options*.
 options.file_content will contain
 what should be added in the next step to the config file