herdSpec top-level property

FigSpec herdSpec
final

Completion spec for herd CLI

Implementation

final FigSpec herdSpec = FigSpec(
    name: 'herd',
    description:
        'Herd is a blazing fast, native Laravel and PHP development environment for macOS. It provides everything that you need to get started with Laravel development',
    icon: icon,
    subcommands: [
      Subcommand(
          icon: icon,
          name: 'completion',
          description: 'Dump the shell completion script',
          args: [
            Arg(
                name: 'shell',
                description:
                    'The shell type (e.g. "bash"), the value of the "\$SHELL" env var will be used if this is not given',
                suggestions: [
                  FigSuggestion(name: 'bash'),
                  FigSuggestion(name: 'fish'),
                  FigSuggestion(name: 'powershell'),
                  FigSuggestion(name: 'zsh')
                ],
                isOptional: true)
          ],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--debug",
//           description: "Tail the completion debug log",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'composer',
          description:
              'Proxy Composer commands with isolated site\'s PHP executable',
          loadSpec: 'composer'),
      Subcommand(
          icon: icon,
          name: 'coverage',
          description:
              'Proxy PHP commands with isolated sith Xdebug code coverage enabled',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'debug',
          description:
              'Proxy PHP commands with isolated site\'s PHP executable and debug.ini loaded',
          loadSpec: 'php'),
      Subcommand(
          icon: icon,
          name: 'directory-listing',
          description:
              'Determine directory-listing behavior. Default is off, which means a 404 will display',
          args: [
            Arg(
                name: 'status',
                description:
                    'On or off. (default=off) will show a 404 page; [on] will display a listing if project folder exists but requested URI not found',
                suggestions: [
                  FigSuggestion(name: 'on'),
                  FigSuggestion(name: 'off')
                ],
                isOptional: true)
          ],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'edit',
          description: 'Open the site in your favorite IDE',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--path",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'fetch-share-url',
          description: 'Get the URL to the current share tunnel for Expose',
          args: [Arg(name: 'domain', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'forget',
          description:
              'Remove the current working (or specified) directory from Herd\'s list of paths',
          args: [Arg(name: 'path', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'help',
          description: 'Display help for a command',
          args: [
            Arg(
                name: 'command_name',
                description: 'The command name [default: "help"]',
                isOptional: true,
                generators: Generator(
                    script: ['herd', 'list', '--raw'],
                    // TS_UNCONVERTED_START (postProcess)
// (out) =>
//             out
//               .trim()
//               .split("\n")
//               .filter((line) => line.trim())
//               .map((line) => {
//                 const [command, ...descriptionParts] = line
//                   .trim()
//                   .split(/\s{2,}/);
//                 return {
//                   name: command,
//                   description: descriptionParts.join(" "),
//                   icon: icon,
//                 };
// TS_UNCONVERTED_END
                    postProcess: null),
                filterStrategy: 'fuzzy')
          ],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--format",
//           description:
//             'The output format (txt, xml, json, or md) [default: "txt"]',
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'init',
          description:
              'Start the services defined in the Herd manifest file, and apply the configuration',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--fresh",
//           description:
//             'The output format (txt, xml, json, or md) [default: "txt"]',
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'isolate',
          description:
              'Change the version of PHP used by Herd to serve the current working directory',
          args: [
            Arg(
                name: 'phpVersion',
                description: 'The PHP version you want to use; e.g 8.1')
          ],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--site",
//           description:
//             "Specify the site to isolate (e.g. if the site isn't linked as its directory name)",
//         },
//         {
//           name: "--silent",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'isolate-node',
          description:
              'Change the version of Node used by the CLI for the current working directory',
          args: [
            Arg(
                name: 'nodeVersion',
                description: 'The Node version you want to use; e.g 21')
          ],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--site",
//           description:
//             "Specify the site to isolate (e.g. if the site isn't linked as its directory name)",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'isolated',
          description: 'List all sites using isolated versions of PHP',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'isolated-node',
          description: 'List all sites using isolated versions of Nodes',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'link',
          description: 'Link the current working directory to Herd',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--secure",
//           description: "Link the site with a trusted TLS certificate",
//         },
//         {
//           name: "--isolate",
//           description:
//             "Isolate the site to the PHP version specified, for example 8.3",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null,
          args: [Arg(name: 'name', isOptional: true)]),
      Subcommand(
          name: 'links',
          description: 'Display all of the registered Herd links',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          name: 'list',
          description: 'List commands',
          args: [
            Arg(
                name: 'namespace',
                description: 'The namespace name',
                isOptional: true)
          ],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--raw",
//           description: "To output raw command list",
//         },
//         {
//           name: "--format",
//           description:
//             'The output format (txt, xml, json, or md) [default: "txt"]',
//         },
//         {
//           name: "--short",
//           description: "To skip describing commands' arguments",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'log',
          description: 'Tail log file',
          args: [Arg(name: 'key')],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: ["--lines", "-n"],
//         },
//         {
//           name: ["--follow", "-f"],
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'logs',
          description: 'Show the log viewer UI for the given site',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--sites",
//           description:
//             "Specify the site to tinker with (e.g. if the site isn't linked as its directory name)",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'loopback',
          description: 'Get or set the loopback address used for Herd sites',
          args: [Arg(name: 'loopback', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'open',
          description:
              'Open the site for the current (or specified) directory in your browser',
          args: [Arg(name: 'domain', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'park',
          description:
              'Register the current working (or specified) directory with Herd',
          args: [Arg(name: 'path', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'parked',
          description: 'Display all the current sites within parked paths',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--json",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'paths',
          description: 'Get all of the paths registered with Herd',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'php',
          description:
              'Proxy PHP commands with isolated site\'s PHP executable',
          args: [Arg(name: 'command')],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--site",
//           description:
//             "Specify the site to use to get the PHP version (e.g. if the site isn't linked as its directory name)",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'proxies',
          description: 'Display all of the proxy sites',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'proxy',
          description:
              'Create an Nginx proxy site for the specified host. Useful for Reverb, Docker, etc',
          args: [Arg(name: 'domain'), Arg(name: 'host')],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--secure",
//           description: "Create a proxy with a trusted TLS certificate",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'restart',
          description: 'Restart the Herd services',
          args: [Arg(name: 'service', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'secure',
          description: 'Secure the given domain with a trusted TLS certificate',
          args: [Arg(name: 'domain', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--expireIn",
//           description:
//             'The amount of days the self signed certificate is valid for. Default is set to "368" [default: 368]',
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'secured',
          description: 'Secure the given domain with a trusted TLS certificate',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--expiring",
//           description:
//             "Limits the results to only sites expiring within the next 60 days",
//         },
//         {
//           name: "--days",
//           description:
//             "To be used with --expiring. Limits the results to only sites expiring within the next X days. Default is set to 60. [default: 60]",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'share',
          description: 'Share the current site via an Expose tunnel',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'site-information',
          description: 'Display information about the specified site',
          args: [Arg(name: 'path', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'start',
          description: 'Start the Herd services',
          args: [Arg(name: 'service', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'stop',
          description: 'Stop the Herd services',
          args: [Arg(name: 'service', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'tinker',
          description: 'Run tinker/Tinkerwell',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--site",
//           description:
//             "Specify the site to tinker with (e.g. if the site isn't linked as its directory name)",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'tld',
          description: '[domain] Get or set the TLD used for Herd sites',
          args: [Arg(name: 'tld', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'unisolate',
          description:
              'Stop customizing the version of PHP used by Herd to serve the current working directory',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--site",
//           description:
//             "Specify the site to un-isolate (e.g. if the site isn't linked as its directory name)",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'unisolate-node',
          description:
              'Stop customizing the version of Node used the CLI for the current working directory',
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--site",
//           description:
//             "Specify the site to un-isolate (e.g. if the site isn't linked as its directory name)",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'unlink',
          description: 'Remove the specified Herd link',
          args: [Arg(name: 'name', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'unproxy',
          description: 'Delete an Nginx proxy config',
          args: [Arg(name: 'domain', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'unsecure',
          description:
              'Stop serving the given domain over HTTPS and remove the trusted TLS certificate',
          args: [Arg(name: 'domain', isOptional: true)],
          // TS_UNCONVERTED_START (options)
// combineOptions([
//         {
//           name: "--all",
//         },
//         {
//           name: "--silent",
//         },
//       ])
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'use',
          description: 'Change the version of PHP used by Herd',
          args: [
            Arg(
                name: 'phpVersion',
                description: 'The PHP version you want to use; e.g. 8.3',
                isOptional: true)
          ],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'which',
          description:
              'Display which Herd driver serves the current working directory',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'which-php',
          description: 'Get the PHP executable path for a given site',
          args: [
            Arg(
                name: 'site',
                description: 'The site to get the PHP executable path for',
                isOptional: true)
          ],
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null),
      Subcommand(
          icon: icon,
          name: 'init:fresh',
          description: 'Initialize a Herd manifest file',
          // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
          options: null)
    ],
    // TS_UNCONVERTED_START (options)
// combineOptions()
// TS_UNCONVERTED_END
    options: null);