id = "bbftp-client" name = "BBFTP" homepage = "https://gitlab.in2p3.fr/cc-in2p3-hpss-service/bbftp" description = "Secure file transfer software optimized for large files." executables = ["bbftp"] [dotfiles] # BBFTP's official 3.2.1 manual documents ~/.bbftprc as the per-user control # file, with -R selecting an alternate path. # https://bbftp.cc.in2p3.fr/3.2.1.bbftp.html paths = ["~/.bbftprc"] secret = [] [commands] format = 1 label = "Transfer files over SSH" description = "Run bbftp control commands on a remote host through ssh. Certificate/Globus, private authentication and protocol V2 port options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "manual" kind = "manual" url = "https://bbftp.cc.in2p3.fr/3.2.1.bbftp.html" revision = "3.2.1" evidence = """ % bbftp [Options] -i ControlFile [-u RemoteUsername] [RemoteHost] % bbftp [Options] -e ControlCommands [-u RemoteUsername] [RemoteHost] -u -s Use this option to use ssh to remotely start a bbftpd daemon. -S -I SSH identity file -c Use this option to gzip the data during transmission. -n Use this option to simulate the transfer. -p NumberOfParallelStreams -r NumberOfTries -V Use this option to set the client in verbose mode -o OutputFile -f ErrorFile """ [[commands.field]] id = "control_file" label = "Control file" type = "path" option = ["-i"] path = { kind = "file", role = "input", must_exist = true } sources = ["manual"] [[commands.field]] id = "control_commands" label = "Control commands" description = "Semicolon-separated commands, e.g. get remote local." type = "string" option = ["-e"] sources = ["manual"] [[commands.field]] id = "user" label = "Remote user" type = "string" option = ["-u"] sources = ["manual"] [[commands.field]] id = "ssh" label = "Start the daemon through ssh" type = "boolean" option = ["-s"] sources = ["manual"] [[commands.field]] id = "ssh_batch" label = "ssh without prompts (no host key checking)" description = "Sets BatchMode and StrictHostKeyChecking=no; uses the identity file." type = "boolean" option = ["-S"] sources = ["manual"] [[commands.field]] id = "identity" label = "SSH identity file" type = "path" option = ["-I"] path = { kind = "file", role = "input" } sources = ["manual"] [[commands.field]] id = "compress" label = "gzip data in transit" type = "boolean" option = ["-c"] sources = ["manual"] [[commands.field]] id = "dry_run" label = "Simulate the transfer" type = "boolean" option = ["-n"] sources = ["manual"] [[commands.field]] id = "streams" label = "Parallel streams" type = "integer" option = ["-p"] sources = ["manual"] [[commands.field]] id = "tries" label = "Number of tries" type = "integer" option = ["-r"] sources = ["manual"] [[commands.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["-V"] sources = ["manual"] [[commands.field]] id = "host" label = "Remote host" type = "string" position = 0 sources = ["manual"] [[commands.task]] id = "ssh_commands" label = "Run commands over ssh" fields = ["ssh", "control_commands", "user", "host"] required = ["ssh", "control_commands", "host"] set = { ssh = [true] } [[commands.task]] id = "ssh_file" label = "Run a control file over ssh" fields = ["ssh", "control_file", "user", "host", "streams"] required = ["ssh", "control_file", "host"] set = { ssh = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["ssh", "control_file", "control_commands", "user", "host"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["ssh_batch", "identity", "compress", "dry_run", "streams", "tries", "verbose"]