id = "cf" name = "Cloud Foundry CLI" homepage = "https://docs.cloudfoundry.org/cf-cli/" description = "The official command line client for Cloud Foundry." icon = "SimpleIcons:cloudfoundry" executables = ["cf"] [dotfiles] # https://docs.cloudfoundry.org/cf-cli/use-cli-plugins.html — the CLI keeps its # state under $CF_HOME/.cf, "which defaults to $HOME/.cf". config.json is the # single file it writes; plugins/ is where installed plug-in binaries land. paths = ["~/.cf/config.json"] exclude = ["~/.cf/plugins/"] # config.json is not a whole-file secret: the API endpoint, targeted org and # space, locale and trace setting are worth carrying. Only the tokens are # lifted out. secret = [] # Re-read at the start of every command; no daemon holds it. side_effect = false # Field names as written by util/configv3/json_config.go in cloudfoundry/cli: # `AccessToken string \`json:"AccessToken"\``, RefreshToken, and the client # secret used for the UAA grant. [[dotfiles.secret_paths]] file = "~/.cf/config.json" match = { key_path = ["AccessToken", "RefreshToken", "UAAOAuthClientSecret"] } [commands] format = 1 label = "Cloud Foundry CLI" description = "Push apps, read logs and set the target org and space. Login (credentials), services, routes and admin commands are left out." quality = "ai-draft" base = "fig:cf" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/cf.ts" license = "MIT" [[commands.subcommand]] path = ["push"] label = "Push an app" description = "Push a new app or sync changes to an existing app. Run it from the app directory." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/cf.ts" license = "MIT" [[commands.subcommand.field]] id = "manifest" label = "Manifest" description = "Path to manifest." type = "path" option = ["-f"] path = { kind = "file", role = "input", must_exist = true } sources = ["fig"] [[commands.subcommand.field]] id = "buildpack" label = "Buildpack" description = "Custom buildpack by name or git url." type = "string" option = ["-b"] sources = ["fig"] [[commands.subcommand.field]] id = "command" label = "Start command" description = "Startup command." type = "string" option = ["-c"] sources = ["fig"] [[commands.subcommand.field]] id = "docker_image" label = "Docker image" description = "Docker image." type = "string" option = ["--docker-image", "-o"] sources = ["fig"] [[commands.subcommand.field]] id = "instances" label = "Instances" description = "Number of instances." type = "integer" option = ["-i"] sources = ["fig"] [[commands.subcommand.field]] id = "memory" label = "Memory limit" description = "Memory limit, e.g. 512M." type = "string" option = ["-m"] sources = ["fig"] [[commands.subcommand.field]] id = "disk" label = "Disk limit" description = "Disk limit, e.g. 1G." type = "string" option = ["-k"] sources = ["fig"] [[commands.subcommand.field]] id = "host_name" label = "Hostname" description = "Hostname." type = "string" option = ["--host-name", "-n"] sources = ["fig"] [[commands.subcommand.field]] id = "domain" label = "Domain" description = "Domain." type = "string" option = ["-d"] sources = ["fig"] [[commands.subcommand.task]] id = "manifest" label = "Push from a manifest" fields = ["manifest"] required = [] [[commands.subcommand.task]] id = "sized" label = "Push with limits" fields = ["instances", "memory", "disk"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["manifest", "instances", "memory", "disk"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["buildpack", "command", "docker_image", "host_name", "domain"] [[commands.subcommand]] path = ["logs"] label = "App logs" description = "Trail or show recent logs for an app." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/cf.ts" license = "MIT" [[commands.subcommand.field]] id = "app_name" label = "App name" description = "Name of the app." type = "string" position = 0 min = 1 sources = ["fig"] [[commands.subcommand.field]] id = "recent" label = "Recent only" description = "Dump recent logs instead of tailing." type = "boolean" option = ["--recent"] sources = ["fig"] [[commands.subcommand.task]] id = "recent" label = "Dump recent logs" set = { recent = [true] } fields = ["app_name", "recent"] required = ["app_name"] [[commands.subcommand.task]] id = "tail" label = "Tail logs" fields = ["app_name"] required = ["app_name"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["app_name", "recent"] [[commands.subcommand]] path = ["target"] label = "Target org and space" description = "Set or view the targeted org or space. Run with no fields to view the current target." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/cf.ts" license = "MIT" [[commands.subcommand.field]] id = "org" label = "Org" description = "Organization to target." type = "string" option = ["-o"] sources = ["fig"] [[commands.subcommand.field]] id = "space" label = "Space" description = "Space to target." type = "string" option = ["-s"] sources = ["fig"] [[commands.subcommand.task]] id = "view" label = "View current target" fields = [] required = [] [[commands.subcommand.task]] id = "set" label = "Set org and space" fields = ["org", "space"] required = ["org"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["org", "space"]