Browse Source

feat(macports): add commands to get list of updated ports (#8698)

Enrico Maria Crisostomo 2 years ago
parent
commit
69d0683a8c
2 changed files with 65 additions and 1 deletions
  1. 26 0
      plugins/macports/README.md
  2. 39 1
      plugins/macports/macports.plugin.zsh

+ 26 - 0
plugins/macports/README.md

@@ -15,7 +15,33 @@ plugins=(... macports)
 |-------|------------------------------------|--------------------------------------------------------------|
 | pc    | `sudo port clean --all installed`  | Clean up intermediate installation files for installed ports |
 | pi    | `sudo port install`                | Install package given as argument                            |
+| pli   | `port livecheck installed`         | Check for updates for installed ports                        |
+| plm   | `port-livecheck-maintainer`        | Check for updates of ports mainained by the specified users  |
 | psu   | `sudo port selfupdate`             | Update ports tree with MacPorts repository                   |
 | puni  | `sudo port uninstall inactive`     | Uninstall inactive ports                                     |
 | puo   | `sudo port upgrade outdated`       | Upgrade ports with newer versions available                  |
 | pup   | `psu && puo`                       | Update ports tree, then upgrade ports to newest versions     |
+
+## Commands
+
+### port-livecheck-maintainer
+
+```text
+Usage:
+  port-livecheck-maintainer
+  port-livecheck-maintainer (maintainer)+
+  port-livecheck-maintainer -h|--help
+
+Check
+
+Options:
+  maintainer  maintainer id
+  -h          print this help message and exit
+```
+
+Checks whether updates are available for ports whose maintainer is the current
+user, or any of a specified list of maintainer expressions.  The current user
+maintainer id is retrieved as follows:
+
+* The value of the `MACPORTS_MAINTAINER` variable, if set and not null.
+* The value of the `USER` variable.

+ 39 - 1
plugins/macports/macports.plugin.zsh

@@ -1,6 +1,44 @@
 alias pc="sudo port clean --all installed"
 alias pi="sudo port install"
+alias pli="port livecheck installed"
+alias plm="port-livecheck-maintainer"
 alias psu="sudo port selfupdate"
 alias puni="sudo port uninstall inactive"
 alias puo="sudo port upgrade outdated"
-alias pup="psu && puo"
+alias pup="sudo port selfupdate && sudo port upgrade outdated"
+
+port-livecheck-maintainer() {
+  (( ${+commands[port]} == 0 )) || {
+    print -- "port: not found" >&2
+    return 1
+  }
+
+  local -a help_flag
+  zparseopts -D -E h=help_flag -help=help_flag
+
+  (( ${#help_flag} )) && {
+    cat << EOF >&2
+Usage:
+  port-livecheck-maintainer
+  port-livecheck-maintainer (maintainer)+
+  port-livecheck-maintainer -h|--help
+
+Check
+
+Options:
+  maintainer  maintainer id
+  -h          print this help message and exit
+EOF
+    return 1
+  }
+
+  if (( $# == 0 )); then
+    local default=${MACPORTS_MAINTAINER:-${USER}}
+    port livecheck maintainer:${default}
+    return $?
+  fi
+
+  for i in $@; do
+    port livecheck maintainer:${i}
+  done
+}