Commit | Line | Data |
---|---|---|
fe885325 JB |
1 | #!/bin/bash |
2 | # | |
3 | # This script gets ports from an overlay that need to be updated | |
4 | # | |
5 | # Note: Before execute this script you should be run 'ports -u' to be sure | |
6 | # you're up to date | |
7 | ||
8 | checkOverlayUpdates() { | |
9 | overlay=$1 | |
10 | repo=${overlay/-arm*/} | |
11 | ||
12 | if [ "$overlay" == "$repo" ]; then | |
13 | echo "Error, $overlay is not a valid overlay" | |
14 | exit 1 | |
15 | fi | |
16 | ||
17 | # check for existing repo | |
18 | case $repo in | |
19 | core|opt|xorg|contrib) ;; | |
20 | *) echo "Error, $repo is not a valid repo"; exit 1;; | |
21 | esac | |
22 | ||
23 | # obtain paths | |
24 | overlay_path=$(grep 'destination' /etc/ports/$overlay.{rsync,httpup} 2>/dev/null | cut -d'=' -f2) | |
25 | repo_path=$(grep 'destination' /etc/ports/$repo.{rsync,httpup} 2>/dev/null | cut -d'=' -f2) | |
26 | ||
27 | # foreach overlayed port check for updates available | |
28 | find $overlay_path -type f -name 'Pkgfile' -exec dirname {} \; | while read o_port; do | |
29 | port=$repo_path/$(basename $o_port) | |
30 | # get versions for both (port and o_port) | |
31 | . $port/Pkgfile | |
32 | port_version=$version-$release | |
33 | . $o_port/Pkgfile | |
34 | o_port_version=$version-$release | |
35 | if [ "$port_version" != "$o_port_version" ]; then | |
36 | printf "%-20s %10s %10s\n" $(basename $port) $o_port_version $port_version >> $TMP_FILE | |
37 | fi | |
38 | done | |
39 | ||
40 | if [ "$(wc -l $TMP_FILE)" != "0" ]; then | |
41 | printf "%-20s %10s %10s\n" "PORT" $overlay $repo | |
42 | cat $TMP_FILE && : > $TMP_FILE | |
43 | echo | |
44 | fi | |
45 | } | |
46 | ||
47 | if [ $# -lt 1 ]; then | |
48 | echo "Usage: $(basename $0) [repo_overlay]" | |
49 | exit 1 | |
50 | fi | |
51 | ||
52 | TMP_FILE=$(mktemp) | |
53 | ||
54 | for TARGET in $@; do | |
55 | checkOverlayUpdates $TARGET | |
56 | done | |
57 | ||
58 | rm -f $TMP_FILE | |
59 | ||
60 | # End of file |