fish-shell/share/completions/hugo.fish
Johannes Altmanninger 29f35d6cdf completion: adopt commandline -x replacing deprecated -o
This gives us more accurate completions because completion scripts get
expanded paths
2024-01-27 09:28:06 +01:00

226 lines
15 KiB
Fish

# Completions for Hugo (https://gohugo.io)
# Functions
function __fish_hugo_command
set -l tokens (commandline -xpc)
test (count $tokens) -le 1; and return 1
set -l command ""
set -l skip 1
for token in $tokens[2..-1]
if test $skip -eq 0
set skip 1
else
switch $token
case --config --logFile
set skip 0
case "-*"
case "*"
set command (string trim -l "$command $token")
end
end
end
test (count $command) -eq 0; and return 1
echo $command
end
function __fish_hugo_using_command
set -l command (__fish_hugo_command)
test "$command" = "$argv"
end
function __fish_hugo_using_main_like_command
set -l command (__fish_hugo_command)
switch "$command"
case "" benchmark server
return 0
end
return 1
end
# Global options
complete -c hugo -l config -f -d "Configuration file"
complete -c hugo -l debug -f -d "Debug output"
complete -c hugo -l log -f -d "Enable logging"
complete -c hugo -l logFile -r -d "Log file"
complete -c hugo -l quiet -f -d "Quiet mode"
complete -c hugo -s v -l verbose -f -d "Verbose output"
complete -c hugo -l verboseLog -f -d "Verbose logging"
# Main-like commands
complete -c hugo -n __fish_hugo_using_main_like_command -s b -l baseURL -r -d "Hostname and path to the root"
complete -c hugo -n __fish_hugo_using_main_like_command -s B -l buildDrafts -f -d "Include content marked as draft"
complete -c hugo -n __fish_hugo_using_main_like_command -s E -l buildExpired -f -d "Include expired content"
complete -c hugo -n __fish_hugo_using_main_like_command -s F -l buildFuture -f -d "Include content with publishdate in the future"
complete -c hugo -n __fish_hugo_using_main_like_command -l cacheDir -f -a "(__fish_complete_directories (commandline -ct) 'Cache directory')" -d "Cache directory"
complete -c hugo -n __fish_hugo_using_main_like_command -l canonifyURLs -f -d "Canonicalize all relative URLs using baseurl"
complete -c hugo -n __fish_hugo_using_main_like_command -l cleanDestinationDir -f -d "Remove files from destination not found in static directories"
complete -c hugo -n __fish_hugo_using_main_like_command -s c -l contentDir -f -a "(__fish_complete_directories (commandline -ct) 'Content directory')" -d "Content directory"
complete -c hugo -n __fish_hugo_using_main_like_command -s d -l destination -f -a "(__fish_complete_directories (commandline -ct) 'Destination directory')" -d "Destination directory"
complete -c hugo -n __fish_hugo_using_main_like_command -l disable404 -f -d "Do not build 404 page"
complete -c hugo -n __fish_hugo_using_main_like_command -l disableKinds -r -d "Disable different kinds of pages"
complete -c hugo -n __fish_hugo_using_main_like_command -l disableRSS -f -d "Do not build RSS files"
complete -c hugo -n __fish_hugo_using_main_like_command -l disableSitemap -f -d "Do not build sitemap files"
complete -c hugo -n __fish_hugo_using_main_like_command -l enableGitInfo -f -d "Add Git revision, date and author info to the pages"
complete -c hugo -n __fish_hugo_using_main_like_command -l forceSyncStatic -f -d "Copy all files when static is changed"
complete -c hugo -n __fish_hugo_using_main_like_command -s h -l help -f -d "Help for hugo"
complete -c hugo -n __fish_hugo_using_main_like_command -l i18n-warnings -f -d "Print missing translations"
complete -c hugo -n __fish_hugo_using_main_like_command -l ignoreCache -f -d "Ignore the cache directory"
complete -c hugo -n __fish_hugo_using_main_like_command -s l -l layoutDir -f -a "(__fish_complete_directories (commandline -ct) 'Layout directory')" -d "Layout directory"
complete -c hugo -n __fish_hugo_using_main_like_command -l noChmod -f -d "Do not sync permission mode of files"
complete -c hugo -n __fish_hugo_using_main_like_command -l noTimes -f -d "Do not sync modification time of files"
complete -c hugo -n __fish_hugo_using_main_like_command -l pluralizeListTitles -f -d "Pluralize titles in lists using inflect"
complete -c hugo -n __fish_hugo_using_main_like_command -l preserveTaxonomyNames -f -d "Preserve taxonomy names as written"
complete -c hugo -n __fish_hugo_using_main_like_command -l renderToMemory -f -d "Render to memory"
complete -c hugo -n __fish_hugo_using_main_like_command -s s -l source -f -a "(__fish_complete_directories (commandline -ct) 'Source directory')" -d "Source directory"
complete -c hugo -n __fish_hugo_using_main_like_command -l stepAnalysis -f -d "Display memory and timing of different steps of the program"
complete -c hugo -n __fish_hugo_using_main_like_command -l templateMetrics -f -d "Display metrics about template executions"
complete -c hugo -n __fish_hugo_using_main_like_command -l templateMetricsHints -f -d "Calculate some improvement hints when combined with --templateMetrics"
complete -c hugo -n __fish_hugo_using_main_like_command -s t -l theme -r -d "Theme to use"
complete -c hugo -n __fish_hugo_using_main_like_command -l themesDir -f -a "(__fish_complete_directories (commandline -ct) 'Themes directory')" -d "Themes directory"
complete -c hugo -n __fish_hugo_using_main_like_command -l uglyURLs -f -d "Use /filename.html instead of /filename/"
complete -c hugo -n __fish_hugo_using_main_like_command -s w -l watch -f -d "Watch filesystem for changes and recreate as needed"
# Commands
# benchmark
complete -c hugo -n "not __fish_hugo_command" -f -a benchmark -d "Benchmark Hugo by building the site a number of times"
complete -c hugo -n "__fish_hugo_using_command benchmark" -s n -l count -f -d "Number of times to build the site"
complete -c hugo -n "__fish_hugo_using_command benchmark" -l cpuprofile -r -d "CPU profile file"
complete -c hugo -n "__fish_hugo_using_command benchmark" -s h -l help -f -d "Help for benchmark"
complete -c hugo -n "__fish_hugo_using_command benchmark" -l memprofile -r -d "Memory profile file"
complete -c hugo -n "__fish_hugo_using_command benchmark" -l renderToMemory -f -d "Render to memory"
complete -c hugo -n "__fish_hugo_using_command benchmark" -l stepAnalysis -f -d "Display memory and timing of different steps of the program"
complete -c hugo -n "__fish_hugo_using_command benchmark" -l templateMetrics -f -d "Display metrics about template executions"
complete -c hugo -n "__fish_hugo_using_command benchmark" -l templateMetricsHints -f -d "Calculate some improvement hints when combined with --templateMetrics"
# check
complete -c hugo -n "not __fish_hugo_command" -f -a check -d "Perform some verification checks"
complete -c hugo -n "__fish_hugo_using_command check" -s h -l help -f -d "Help for check"
# check ulimit
complete -c hugo -n "__fish_hugo_using_command check" -f -a ulimit -d "Check system ulimit settings"
complete -c hugo -n "__fish_hugo_using_command check ulimit" -s h -l help -f -d "Help for ulimit"
# config
complete -c hugo -n "not __fish_hugo_command" -f -a config -d "Print the site configuration"
complete -c hugo -n "__fish_hugo_using_command config" -s h -l help -f -d "Help for config"
# convert
complete -c hugo -n "not __fish_hugo_command" -f -a convert -d "Convert the content to different formats"
complete -c hugo -n "__fish_hugo_using_command convert" -s h -l help -f -d "Help for convert"
complete -c hugo -n "__fish_hugo_using_command convert" -s o -l output -f -a "(__fish_complete_directories (commandline -ct) 'Output directory')" -d "Output directory"
complete -c hugo -n "__fish_hugo_using_command convert" -s s -l source -f -a "(__fish_complete_directories (commandline -ct) 'Source directory')" -d "Source directory"
complete -c hugo -n "__fish_hugo_using_command convert" -l unsafe -f -d "Enable less safe operations"
# convert toJSON
complete -c hugo -n "__fish_hugo_using_command convert" -f -a toJSON -d "Convert front matter to JSON"
complete -c hugo -n "__fish_hugo_using_command convert toJSON" -s h -l help -f -d "Help for toJSON"
# convert toTOML
complete -c hugo -n "__fish_hugo_using_command convert" -f -a toTOML -d "Convert front matter to TOML"
complete -c hugo -n "__fish_hugo_using_command convert toTOML" -s h -l help -f -d "Help for toTOML"
# convert toYAML
complete -c hugo -n "__fish_hugo_using_command convert" -f -a toYAML -d "Convert front matter to YAML"
complete -c hugo -n "__fish_hugo_using_command convert toYAML" -s h -l help -f -d "Help for toYAML"
# env
complete -c hugo -n "not __fish_hugo_command" -f -a env -d "Print Hugo version and environment info"
complete -c hugo -n "__fish_hugo_using_command env" -s h -l help -f -d "Help for env"
# gen
complete -c hugo -n "not __fish_hugo_command" -f -a gen -d "Collection of several useful generators"
complete -c hugo -n "__fish_hugo_using_command gen" -s h -l help -f -d "Help for gen"
# gen autocomplete
complete -c hugo -n "__fish_hugo_using_command gen" -f -a autocomplete -d "Generate shell autocompletion script for Hugo"
complete -c hugo -n "__fish_hugo_using_command gen autocomplete" -l completionfile -r -d "Autocompletion file"
complete -c hugo -n "__fish_hugo_using_command gen autocomplete" -s h -l help -f -d "Help for autocomplete"
complete -c hugo -n "__fish_hugo_using_command gen autocomplete" -l type -f -a bash -d "Autocompletion type"
# gen chromastyles
complete -c hugo -n "__fish_hugo_using_command gen" -f -a chromastyles -d "Generate CSS stylesheet for the Chroma code highlighter"
complete -c hugo -n "__fish_hugo_using_command gen chromastyles" -s h -l help -f -d "Help for chromastyles"
complete -c hugo -n "__fish_hugo_using_command gen chromastyles" -l highlightStyle -r -d "Style used for highlighting lines"
complete -c hugo -n "__fish_hugo_using_command gen chromastyles" -l lineStyle -r -d "Style used for line numbers"
complete -c hugo -n "__fish_hugo_using_command gen chromastyles" -l style -r -d "Highlighter style"
# gen doc
complete -c hugo -n "__fish_hugo_using_command gen" -f -a doc -d "Generate Markdown documentation for the Hugo CLI"
complete -c hugo -n "__fish_hugo_using_command gen doc" -l dir -f -a "(__fish_complete_directories (commandline -ct) 'Doc directory')" -d "Doc directory"
complete -c hugo -n "__fish_hugo_using_command gen doc" -s h -l help -f -d "Help for doc"
# gen man
complete -c hugo -n "__fish_hugo_using_command gen" -f -a man -d "Generate man pages for the Hugo CLI"
complete -c hugo -n "__fish_hugo_using_command gen man" -l dir -f -a "(__fish_complete_directories (commandline -ct) 'Man pages directory')" -d "Man pages directory"
complete -c hugo -n "__fish_hugo_using_command gen man" -s h -l help -f -d "Help for man"
# import
complete -c hugo -n "not __fish_hugo_command" -f -a import -d "Import your site from others"
complete -c hugo -n "__fish_hugo_using_command import" -s h -l help -f -d "Help for import"
# import jekyll
complete -c hugo -n "__fish_hugo_using_command import" -f -a jekyll -d "Import from Jekyll"
complete -c hugo -n "__fish_hugo_using_command import jekyll" -l force -f -d "Allow import into non-empty target directory"
complete -c hugo -n "__fish_hugo_using_command import jekyll" -s h -l help -f -d "Help for jekyll"
# list
complete -c hugo -n "not __fish_hugo_command" -f -a list -d "List various types of content"
complete -c hugo -n "__fish_hugo_using_command list" -s h -l help -f -d "Help for list"
complete -c hugo -n "__fish_hugo_using_command list" -s s -l source -f -a "(__fish_complete_directories (commandline -ct) 'Source directory')" -d "Source directory"
# list drafts
complete -c hugo -n "__fish_hugo_using_command list" -f -a drafts -d "List all drafts"
complete -c hugo -n "__fish_hugo_using_command list drafts" -s h -l help -f -d "Help for drafts"
# list expired
complete -c hugo -n "__fish_hugo_using_command list" -f -a expired -d "List all expired posts"
complete -c hugo -n "__fish_hugo_using_command list expired" -s h -l help -f -d "Help for expired"
# list future
complete -c hugo -n "__fish_hugo_using_command list" -f -a future -d "List all posts dated in the future"
complete -c hugo -n "__fish_hugo_using_command list future" -s h -l help -f -d "Help for future"
# new
complete -c hugo -n "not __fish_hugo_command" -f -a new -d "Create new content"
complete -c hugo -n "__fish_hugo_using_command new" -l editor -r -d "Editor to use"
complete -c hugo -n "__fish_hugo_using_command new" -s h -l help -f -d "Help for new"
complete -c hugo -n "__fish_hugo_using_command new" -s k -l kind -r -d "Content type to create"
complete -c hugo -n "__fish_hugo_using_command new" -s s -l source -f -a "(__fish_complete_directories (commandline -ct) 'Source directory')" -d "Source directory"
# new site
complete -c hugo -n "__fish_hugo_using_command new" -f -a site -d "Create a new site"
complete -c hugo -n "__fish_hugo_using_command new site" -l force -f -d "Create site inside non-empty directory"
complete -c hugo -n "__fish_hugo_using_command new site" -s f -l format -r -d "Config and front matter format"
complete -c hugo -n "__fish_hugo_using_command new site" -s h -l help -f -d "Help for site"
# new theme
complete -c hugo -n "__fish_hugo_using_command new" -f -a theme -d "Create a new theme"
complete -c hugo -n "__fish_hugo_using_command new theme" -s h -l help -f -d "Help for theme"
# server
complete -c hugo -n "not __fish_hugo_command" -f -a server -d "Start high performance web server"
complete -c hugo -n "__fish_hugo_using_command server" -l appendPort -f -d "Append port to baseurl"
complete -c hugo -n "__fish_hugo_using_command server" -l bind -r -d "Interface to which the server will bind"
complete -c hugo -n "__fish_hugo_using_command server" -l disableFastRender -f -d "Enable full re-renders on changes"
complete -c hugo -n "__fish_hugo_using_command server" -l disableLiveReload -f -d "Watch without enabling live browser reload on rebuild"
complete -c hugo -n "__fish_hugo_using_command server" -s h -l help -f -d "Help for server"
complete -c hugo -n "__fish_hugo_using_command server" -l liveReloadPort -r -d "Port for live reloading"
complete -c hugo -n "__fish_hugo_using_command server" -l meminterval -f -d "Interval to poll memory usage"
complete -c hugo -n "__fish_hugo_using_command server" -l memstats -f -d "Memory usage log file"
complete -c hugo -n "__fish_hugo_using_command server" -l navigateToChanged -f -d "Navigate to changed content file on live browser reload"
complete -c hugo -n "__fish_hugo_using_command server" -l noHTTPCache -f -d "Prevent HTTP caching"
complete -c hugo -n "__fish_hugo_using_command server" -s p -l port -r -d "Port on which the server will listen"
complete -c hugo -n "__fish_hugo_using_command server" -l renderToDisk -r -d "Render to destination directory"
# undraft
complete -c hugo -n "not __fish_hugo_command" -f -a undraft -d "Reset the content draft status"
complete -c hugo -n "__fish_hugo_using_command undraft" -s h -l help -f -d "Help for undraft"
# version
complete -c hugo -n "not __fish_hugo_command" -f -a version -d "Print the version number of Hugo"
complete -c hugo -n "__fish_hugo_using_command version" -s h -l help -f -d "Help for version"