id = "scp" name = "scp" description = "Secure copy of files between hosts over SSH." executables = ["scp"] [commands] format = 1 label = "Copy files over SSH" description = "Copies one or more sources to a target. Cipher, ssh options, ssh_config file, agent forwarding and the remaining flags are left out." quality = "ai-draft" base = "fig:scp" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = true, short_bundles = true } [[commands.source]] id = "src" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/scp.ts" license = "MIT" [[commands.field]] id = "sources" label = "Sources" description = "Local paths or [user@]host:path." type = "string" position = 0 multiple = true sources = ["src"] [[commands.field]] id = "target" label = "Target" description = "Local path or [user@]host:path." type = "string" position = 1 sources = ["src"] [[commands.field]] id = "recursive" label = "Recurse into directories" type = "boolean" option = ["-r"] sources = ["src"] [[commands.field]] id = "preserve" label = "Preserve times and modes" type = "boolean" option = ["-p"] sources = ["src"] [[commands.field]] id = "compress" label = "Compress" type = "boolean" option = ["-C"] sources = ["src"] [[commands.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["-q"] sources = ["src"] [[commands.field]] id = "verbose" label = "Verbose" type = "count" option = ["-v"] sources = ["src"] [[commands.field]] id = "port" label = "Remote port" type = "integer" option = ["-P"] sources = ["src"] [[commands.field]] id = "identity" label = "Identity file" type = "path" option = ["-i"] path = { kind = "file", role = "input" } sources = ["src"] [[commands.field]] id = "jump" label = "Jump host" type = "string" option = ["-J"] sources = ["src"] [[commands.field]] id = "limit" label = "Bandwidth limit (Kbit/s)" type = "integer" option = ["-l"] sources = ["src"] [[commands.field]] id = "ipv4" label = "IPv4 only" type = "boolean" option = ["-4"] sources = ["src"] [[commands.field]] id = "batch" label = "Batch mode (no prompts)" type = "boolean" option = ["-B"] sources = ["src"] [[commands.task]] id = "copy" label = "Copy files" fields = ["sources", "target"] required = ["sources", "target"] [[commands.task]] id = "copydir" label = "Copy a directory" fields = ["sources", "target", "recursive"] required = ["sources", "target"] set = { recursive = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["sources", "target", "recursive", "preserve", "compress", "port"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["limit", "ipv4", "batch", "jump", "identity", "quiet", "verbose"]