2015-06-03 20:53:20 +00:00
function __fish_port_needs_command
set cmd ( commandline -opc )
if [ ( count $cmd ) -eq 1 -a $cmd [ 1 ] = 'port' ]
return 0
end
return 1
end
function __fish_port_using_command
set cmd ( commandline -opc )
if [ ( count $cmd ) - gt 1 ]
if [ $argv [ 1 ] = $cmd [ 2 ] ]
return 0
end
end
return 1
end
function __fish_port_list
2022-04-05 17:28:39 +00:00
port list 2 > /dev/null | cut -d ' ' -f1
2015-06-03 20:53:20 +00:00
end
2017-11-29 22:02:21 +00:00
function __fish_port_inactive
2022-04-05 17:28:39 +00:00
port echo inactive 2 > /dev/null | sed 's/ \{1,\}/ /g'
2017-11-29 22:02:21 +00:00
end
function __fish_port_active
2022-04-05 17:28:39 +00:00
port echo active 2 > /dev/null | sed 's/ \{1,\}/ /g'
2017-11-29 22:02:21 +00:00
end
2015-06-03 20:53:20 +00:00
function __fish_port_installed
2022-04-05 17:28:39 +00:00
port echo installed 2 > /dev/null | sed 's/ \{1,\}/ /g'
2015-06-03 20:53:20 +00:00
end
function __fish_port_outdated_formulas
2022-04-05 17:28:39 +00:00
port echo outdated 2 > /dev/null | cut -d ' ' -f1
2015-06-03 20:53:20 +00:00
end
set -l pseudo_portnames = 'all current active inactive actintact installed uninstalled outdated obsolete requested unrequested leaves'
############
# commands #
############
2017-11-29 22:02:21 +00:00
complete -f -c port -n '__fish_port_needs_command' -s v -d 'Verbose mode'
complete -f -c port -n '__fish_port_needs_command' -s d -d 'Debug mode'
complete -f -c port -n '__fish_port_needs_command' -s q -d 'Quiet mode, implies -N'
complete -f -c port -n '__fish_port_needs_command' -s N -d 'Non-interactive mode'
complete -f -c port -n '__fish_port_needs_command' -s n -d 'Do not follow dependencies for upgrade/install'
complete -f -c port -n '__fish_port_needs_command' -s R -d 'Also upgrade dependents'
complete -f -c port -n '__fish_port_needs_command' -s u -d 'Uninstall inactive ports when upgrading and uninstalling'
complete -f -c port -n '__fish_port_needs_command' -s y -d 'Performa dry run'
complete -f -c port -n '__fish_port_needs_command' -s s -d 'Source-only mode'
complete -f -c port -n '__fish_port_needs_command' -s b -d 'Binary-only mode'
complete -f -c port -n '__fish_port_needs_command' -s c -d 'Autoclean mode'
complete -f -c port -n '__fish_port_needs_command' -s k -d 'Keep mode, do not autoclean after install'
complete -f -c port -n '__fish_port_needs_command' -s p -d 'Proceed after errors'
complete -f -c port -n '__fish_port_needs_command' -s o -d 'Honort state files if Portfile was modified'
complete -f -c port -n '__fish_port_needs_command' -s t -d 'Enable trace mode for debugging'
complete -f -c port -n '__fish_port_needs_command' -s f -d 'Force mode, ignore state file'
complete -r -c port -n '__fish_port_needs_command' -s D -d 'Specify portdir'
complete -r -c port -n '__fish_port_needs_command' -s F -d 'Read and proccess the file of commands'
2021-06-09 01:23:57 +00:00
# selfupdate
complete -f -c port -n '__fish_port_needs_command' -a 'selfupdate' -d 'Sync macports and ports tree'
# sync
complete -f -c port -n '__fish_port_needs_command' -a 'sync' -d 'Sync ports tree'
2017-11-29 22:02:21 +00:00
2015-06-03 20:53:20 +00:00
# activate
complete -f -c port -n '__fish_port_needs_command' -a activate -d 'Activates installed portname'
2017-11-29 22:02:21 +00:00
complete -f -c port -n '__fish_port_using_command activate' -l no-exec -d 'Do not execute any stored pre- or post-uninstall procedures'
complete -x -c port -n '__fish_port_using_command activate' -a '(__fish_port_inactive)'
2015-06-03 20:53:20 +00:00
# # cat
# complete -f -c port -n '__fish_port_needs_command' -a cat -d 'Display formula'
# complete -f -c port -n '__fish_port_using_command cat' -a '(__fish_port_list)'
#
# # create
# complete -f -c port -n '__fish_port_needs_command' -a create -d 'Create new formula from URL'
# complete -f -c port -n '__fish_port_using_command create' -l cmake -d 'Use template for CMake-style build'
# complete -f -c port -n '__fish_port_using_command create' -l autotools -d 'Use template for Autotools-style build'
# complete -f -c port -n '__fish_port_using_command create' -l no-fetch -d 'Don\'t download URL'
#
# # deps
# complete -f -c port -n '__fish_port_needs_command' -a deps -d 'Show a formula\'s dependencies'
# complete -f -c port -n '__fish_port_using_command deps' -l 1 -d 'Show only 1 level down'
# complete -f -c port -n '__fish_port_using_command deps' -s n -d 'Show in topological order'
# complete -f -c port -n '__fish_port_using_command deps' -l tree -d 'Show dependencies as tree'
# complete -f -c port -n '__fish_port_using_command deps' -l all -d 'Show dependencies for all formulae'
# complete -f -c port -n '__fish_port_using_command deps' -a '(__fish_port_list)'
#
# # diy
# complete -f -c port -n '__fish_port_needs_command' -a 'diy configure' -d 'Determine installation prefix for non-port software'
# complete -f -c port -n '__fish_port_using_command diy' -l set-name -d 'Set name of package'
# complete -f -c port -n '__fish_port_using_command diy' -l set-version -d 'Set version of package'
#
# complete -f -c port -n '__fish_port_needs_command' -a 'doctor' -d 'Check your system for problems'
# complete -f -c port -n '__fish_port_needs_command' -a 'edit' -d 'Open port/formula for editing'
#
# # fetch
# complete -f -c port -n '__fish_port_needs_command' -a fetch -d 'Download source for formula'
# complete -f -c port -n '__fish_port_using_command fetch' -l force -d 'Remove a previously cached version and re-fetch'
# complete -f -c port -n '__fish_port_using_command fetch' -l HEAD -d 'Download the HEAD version from a VCS'
# complete -f -c port -n '__fish_port_using_command fetch' -l deps -d 'Also download dependencies'
# complete -f -c port -n '__fish_port_using_command fetch' -s v -d 'Make HEAD checkout verbose'
# complete -f -c port -n '__fish_port_using_command fetch' -a '(__fish_port_list)'
#
# complete -f -c port -n '__fish_port_needs_command' -a 'help' -d 'Display help'
#
# # home
# complete -f -c port -n '__fish_port_needs_command' -a home -d 'Open port/formula\'s homepage'
# complete -c port -n '__fish_port_using_command home' -a '(__fish_port_list)'
#
# # info
# complete -f -c port -n '__fish_port_needs_command' -a 'info abv' -d 'Display information about formula'
# complete -f -c port -n '__fish_port_using_command info' -l all -d 'Display info for all formulae'
# complete -f -c port -n '__fish_port_using_command info' -l github -d 'Open the GitHub History page for formula'
# complete -c port -n '__fish_port_using_command info' -a '(__fish_port_list)'
# install
complete -f -c port -n '__fish_port_needs_command' -a 'install' -d 'Install and activate portname'
2017-11-29 22:02:21 +00:00
complete -f -c port -n '__fish_port_using_command install' -l no-rev-upgrade -d 'Do not run rev-upgrade after installation'
complete -f -c port -n '__fish_port_using_command install' -l unrequested -d 'Do not mark the installed ports as requested'
complete -x -c port -n '__fish_port_using_command install' -a '(__fish_port_list)' -d 'portname'
2015-06-03 20:53:20 +00:00
# # link
# complete -f -c port -n '__fish_port_needs_command' -a 'link ln' -d 'Symlink installed formula'
# complete -f -c port -n '__fish_port_using_command link' -a '(__fish_port_installed)'
# complete -f -c port -n '__fish_port_using_command ln' -a '(__fish_port_installed)'
# list
complete -f -c port -n '__fish_port_needs_command' -a 'list ls' -d 'List all installed formula'
complete -f -c port -n '__fish_port_using_command list' -l unported -d 'List all files in the Homeport prefix not installed by port'
complete -f -c port -n '__fish_port_using_command list' -l versions -d 'Show the version number'
2017-11-29 22:02:21 +00:00
complete -x -c port -n '__fish_port_using_command list' -a " $pseudo_portnames " -d 'pseudo portname'
complete -x -c port -n '__fish_port_using_command list' -a '(__fish_port_list)' -d 'portname'
2015-06-03 20:53:20 +00:00
# #ls
# complete -f -c port -n '__fish_port_using_command ls' -l unported -d 'List all files in the Homeport prefix not installed by port'
# complete -f -c port -n '__fish_port_using_command ls' -l versions -d 'Show the version number'
# complete -c port -n '__fish_port_using_command ls' -a '(__fish_port_list)'
#
# # log
# complete -f -c port -n '__fish_port_needs_command' -a log -d 'Show log for formula'
# complete -c port -n '__fish_port_using_command log' -a '(__fish_port_list)' -d 'formula'
#
# # missing
# complete -f -c port -n '__fish_port_needs_command' -a missing -d 'Check formula for missing dependencies'
# complete -c port -n '__fish_port_using_command missing' -a '(__fish_port_list)' -d 'formula'
#
# # options
# complete -f -c port -n '__fish_port_needs_command' -a options -d 'Display install options for formula'
# complete -c port -n '__fish_port_using_command options' -a '(__fish_port_list)' -d 'formula'
#
# # outdated
# complete -f -c port -n '__fish_port_needs_command' -a outdated -d 'Show formula that have updated versions'
# complete -f -c port -n '__fish_port_using_command outdated' -l quiet -d 'Display only names'
#
# # prune
# complete -f -c port -n '__fish_port_needs_command' -a prune -d 'Remove dead symlinks'
#
# # search
# complete -f -c port -n '__fish_port_needs_command' -a 'search -S' -d 'Search for formula by name'
# complete -f -c port -n '__fish_port_using_command search' -l macports -d 'Search on MacPorts'
# complete -f -c port -n '__fish_port_using_command search' -l fink -d 'Search on Fink'
# complete -f -c port -n '__fish_port_using_command -S' -l macports -d 'Search on MacPorts'
# complete -f -c port -n '__fish_port_using_command -S' -l fink -d 'Search on Fink'
#
# # tap
# complete -f -c port -n '__fish_port_needs_command' -a tap -d 'Tap a new formula repository on GitHub'
#
# # test
# complete -f -c port -n '__fish_port_needs_command' -a test -d 'Run tests for formula'
# complete -c port -n '__fish_port_using_command test' -a '(__fish_port_list)' -d 'formula'
#
# # uninstall
2017-11-29 22:02:21 +00:00
complete -f -c port -n '__fish_port_needs_command' -a 'uninstall' -d 'Uninstall port'
complete -x -c port -n '__fish_port_using_command uninstall' -a '(__fish_port_installed)'
complete -f -c port -n '__fish_port_using_command uninstall' -l follow-dependents -d 'Also uninstall all ports recurively depending on this'
complete -f -c port -n '__fish_port_using_command uninstall' -l follow-dependencies -d 'Also recursively uninstall all ports that this depends on'
complete -f -c port -n '__fish_port_using_command uninstall' -l no-exec -d 'Do not execute any stored pre- or post-uninstall procedures'
2015-06-03 20:53:20 +00:00
#
# # unlink
# complete -f -c port -n '__fish_port_needs_command' -a unlink -d 'Unlink formula'
# complete -c port -n '__fish_port_using_command unlink' -a '(__fish_port_installed)'
#
# # update
# complete -f -c port -n '__fish_port_needs_command' -a update -d 'Fetch newest version of Homeport and formulas'
# complete -f -c port -n '__fish_port_using_command update' -l rebase -d 'Use git pull --rebase'
#
# # upgrade
complete -f -c port -n '__fish_port_needs_command' -a upgrade -d 'Upgrade outdated ports'
complete -f -c port -n '__fish_port_using_command upgrade' -a " $pseudo_portnames " -d 'pseudo portname'
2017-11-29 22:02:21 +00:00
complete -x -c port -n '__fish_port_using_command upgrade' -a "(__fish_port_outdated_formulas)" -d 'outdated portname'
2015-06-03 20:53:20 +00:00
#
# # uses
# complete -f -c port -n '__fish_port_needs_command' -a uses -d 'Show formulas that depend on specified formula'
# complete -f -c port -n '__fish_port_using_command uses' -l installed -d 'List only installed formulae'
# complete -c port -n '__fish_port_using_command uses' -a '(__fish_port_list)'
#
# # versions
# complete -f -c port -n '__fish_port_needs_command' -a versions -d 'List previous versions of formula'
# complete -f -c port -n '__fish_port_using_command versions' -l compact -d 'Show all options on a single line'
# complete -c port -n '__fish_port_using_command versions' -a '(__fish_port_list)'
#
#
# ############
# # switches #
# ############
# complete -f -c port -n '__fish_port_needs_command' -a '-v --version' -d 'Print version number of port'
# complete -f -c port -n '__fish_port_needs_command' -l repository -x -d 'Display where Homeport\'s .git directory is located'
# complete -f -c port -n '__fish_port_needs_command' -l config -x -d 'Show Homeport and system configuration'
#
# # --prefix
# complete -f -c port -n '__fish_port_needs_command' -l prefix -d 'Display Homeport\'s install path'
# complete -f -c port -n '__fish_port_using_command --prefix' -a '(__fish_port_list)' -d 'Display formula\'s install path'
#
# # --cache
# complete -f -c port -n '__fish_port_needs_command' -l cache -d 'Display Homeport\'s download cache'
# complete -f -c port -n '__fish_port_needs_command' -n '__fish_port_using_command --cache' -a '(__fish_port_list)' -d 'Display the file or directory used to cache formula'
#
# # --cellar
# complete -f -c port -n '__fish_port_needs_command' -l cellar -d 'Display Homeport\'s Cellar path'
# complete -f -c port -n '__fish_port_using_command --cellar' -a '(__fish_port_list)' -d 'Display formula\'s install path in Cellar'
#