// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SHELL_COMMAND_LINE_UTIL_H_
#define SHELL_COMMAND_LINE_UTIL_H_

#include "shell/context.h"

namespace shell {

// Parse the given arg, looking for an --args-for switch. If this is not the
// case, returns |false|. Otherwise, returns |true| and set |*value| to the
// value of the switch.
bool ParseArgsFor(const std::string& arg, std::string* value);

// The value of app_url_and_args is "<mojo_app_url> [<args>...]", where args
// is a list of "configuration" arguments separated by spaces. If one or more
// arguments are specified they will be available when the Mojo application
// is initialized. This returns the mojo_app_url, and set args to the list of
// arguments.
GURL GetAppURLAndArgs(Context* context,
                      const std::string& app_url_and_args,
                      std::vector<std::string>* args);

// Apply arguments for an application from a line with the following format:
// '--args-for=application_url arg1 arg2 arg3'
// This does nothing if the line has not the right format.
void ApplyApplicationArgs(Context* context, const std::string& args);

// Run all application defined on the command line, using the given context.
void RunCommandLineApps(Context* context);

}  // namespace shell

#endif  // SHELL_COMMAND_LINE_UTIL_H_
