11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "cloud_print/gcp20/prototype/gcp20_switches.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/files/file_path.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/path_service.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace switches {
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kDisableConfirmation[] = "disable-confirmation";
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kDisableIpv4[] = "disable-ipv4";
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kDisableIpv6[] = "disable-ipv6";
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kDisableMethodCheck[] = "disable-method-check";
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kDisableXTocken[] = "disable-x-token";
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kDomainName[] = "domain-name";
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kExtendedResponce[] = "extended-response";
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kHelpShort[] = "h";
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kHelp[] = "help";
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kHttpPort[] = "http-port";
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kNoAnnouncement[] = "no-announcement";
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kServiceName[] = "service-name";
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kSimulatePrintingErrors[] = "simulate-printing-errors";
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kStatePath[] = "state-path";
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kTtl[] = "ttl";
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kUnicastRespond[] = "unicast-respond";
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst struct {
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const char* const name;
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const char* const description;
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  const char* const arg;
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} kHelpStrings[] = {
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kDisableConfirmation, "disables confirmation of registration", NULL},
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kDisableIpv4, "disables IPv4 support", NULL},
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kDisableIpv6, "disables IPv6 support", NULL},
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kDisableMethodCheck, "disables HTTP method checking (POST, GET)", NULL},
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kDisableXTocken, "disables checking of X-Privet-Token HTTP header", NULL},
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kNoAnnouncement, "disables DNS announcements", NULL},
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kExtendedResponce, "responds to PTR with additional records", NULL},
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kSimulatePrintingErrors, "simulates some errors for local printing", NULL},
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kUnicastRespond,
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci       "DNS responses will be sent in unicast instead of multicast", NULL},
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kDomainName, "sets, should ends with '.local'", "DOMAIN"},
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kHttpPort, "sets port for HTTP server", "PORT"},
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kServiceName, "sets DNS service name", "SERVICE"},
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kStatePath, "sets path to file with registration state", "PATH"},
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  {kTtl, "sets TTL for DNS announcements", "TTL"},
491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid PrintUsage() {
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  base::FilePath exe;
531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  PathService::Get(base::FILE_EXE, &exe);
541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  printf("usage: %s [OPTION]...\n\n", exe.BaseName().MaybeAsASCII().c_str());
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  for (size_t i = 0; i < arraysize(kHelpStrings); ++i) {
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    std::string name = kHelpStrings[i].name;
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    if (kHelpStrings[i].arg) {
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      name += '=';
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      name += kHelpStrings[i].arg;
601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    }
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    name.resize(27, ' ');
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    printf("  --%s%s\n", name.c_str(), kHelpStrings[i].description);
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  printf("\n  WARNING: mDNS probing is not implemented\n");
651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace switches
68