id = "lftp" name = "lftp" homepage = "https://lftp.yar.ru/" description = "A sophisticated command-line file transfer program supporting FTP, HTTP, SFTP, FISH and BitTorrent." executables = ["lftp"] [dotfiles] # https://lftp.yar.ru/lftp-man.html — lftp executes ~/.lftprc and ~/.lftp/rc, # or $XDG_CONFIG_HOME/lftp/rc when ~/.lftp does not exist. Its bookmarks are # stored in ~/.lftp/bookmarks or $XDG_DATA_HOME/lftp/bookmarks. paths = [ "~/.lftprc", "~/.lftp/rc", "[configHome]/lftp/rc", ] # lftp's official tutorial documents that bookmarks may contain usernames and # passwords, so both documented bookmark locations are treated as credentials. secret = [ "~/.lftp/bookmarks", "[xdgData]/lftp/bookmarks", ] side_effect = false [commands] format = 1 label = "Connect with lftp" description = "Open an interactive lftp session to a site, or run a one-shot command string or script file. Passwords are left out because the man page warns against putting them on the command line." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "man" kind = "manual" url = "https://manpages.debian.org/unstable/lftp/lftp.1.en.html" revision = "4.8.1" evidence = """ lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site] lftp -f script_file lftp -c commands -d Switch on debugging mode. -e commands Execute given commands and don't exit. -p port Use the given port to connect. -u user[,pass] Use the given username and password to connect. Remember to quote the password properly in the shell. Also note that it is not secure to specify the password on command line --norc Don't execute rc files from the home directory. -f script_file Execute commands in the file and exit. This option must be used alone without other arguments (except --norc). -c commands Execute the given commands and exit. Commands can be separated with a semicolon, `&&' or `||'. This option must be used alone without other arguments (except --norc). """ [[commands.field]] id = "site" label = "Site" description = "Host name or URL such as sftp://host/path. Leave empty to start unconnected." type = "string" position = 0 sources = ["man"] [[commands.field]] id = "user" label = "User name" type = "string" option = ["-u"] sources = ["man"] [[commands.field]] id = "port" label = "Port" type = "integer" option = ["-p"] sources = ["man"] [[commands.field]] id = "exec_after" label = "Commands to run, then stay open" type = "string" option = ["-e"] effect = "exec" sources = ["man"] [[commands.field]] id = "exec_exit" label = "Commands to run, then exit" description = "Semicolon-separated commands. Must be used without a site or other options except --norc." type = "string" option = ["-c"] effect = "exec" sources = ["man"] [[commands.field]] id = "script" label = "Script file" description = "Run the commands in this file and exit. Must be used alone except for --norc." type = "path" option = ["-f"] path = { kind = "file", role = "input" } effect = "exec" sources = ["man"] [[commands.field]] id = "debug" label = "Debug mode" type = "boolean" option = ["-d"] sources = ["man"] [[commands.field]] id = "norc" label = "Skip rc files" type = "boolean" option = ["--norc"] sources = ["man"] [[commands.task]] id = "connect" label = "Connect to a site" fields = ["site", "user", "port", "debug"] required = ["site"] [[commands.task]] id = "one_shot" label = "Run commands and exit" fields = ["exec_exit", "norc"] required = ["exec_exit"] [[commands.task]] id = "run_script" label = "Run a script file" fields = ["script", "norc"] required = ["script"] [[commands.group]] id = "basic" label = "Basic" fields = ["site", "user", "port", "exec_after"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["exec_exit", "script", "debug", "norc"]