Commit | Line | Data |
---|---|---|
fe885325 JB |
1 | #!/bin/bash |
2 | # | |
3 | # This script gets ports from an overlay that need to be updated | |
4 | # | |
6b68e962 | 5 | # Requeriments: You need 'ports' and 'prt-get' installed |
fe885325 JB |
6 | # Note: Before execute this script you should be run 'ports -u' to be sure |
7 | # you're up to date | |
8 | ||
9 | checkOverlayUpdates() { | |
fe885325 | 10 | |
6b68e962 | 11 | overlay=$1 |
fe885325 | 12 | |
6b68e962 JB |
13 | # check for a valid overlay |
14 | case $overlay in | |
15 | core-arm|opt-arm|xorg-arm|contrib-arm) ;; | |
16 | cubieboard-arm|cubieboard2-arm|efikamx-arm|raspberrypi-arm) ;; | |
17 | *) | |
18 | echo "Error, unsupported overlay: $overlay" | |
19 | exit 1 | |
20 | ;; | |
fe885325 | 21 | esac |
6b68e962 JB |
22 | |
23 | # get a list of ports in the overlay | |
fe885325 | 24 | overlay_path=$(grep 'destination' /etc/ports/$overlay.{rsync,httpup} 2>/dev/null | cut -d'=' -f2) |
6b68e962 JB |
25 | overlay_ports=$(find $overlay_path -type f -name 'Pkgfile' -exec dirname {} \; | sed "s|$overlay_path/||g") |
26 | ||
27 | # for device overlay repos we need to know the upstream repo/port | |
28 | for port in $overlay_ports; do | |
29 | # get upstream repo/port | |
30 | for repo in core opt xorg; do | |
31 | repo_path=$(grep 'destination' /etc/ports/$repo.{rsync,httpup} 2>/dev/null | cut -d'=' -f2) | |
32 | u_repo=$(basename $(dirname $(prt-get --no-std-config --config-prepend="prtdir $repo_path" path $port 2>/dev/null) 2>/dev/null) 2>/dev/null) | |
33 | # breaks if there is an upstream repo | |
34 | [ ! -z $u_repo ] && break | |
35 | done | |
36 | # show differences between upstream port and overlayed port | |
37 | if [ ! -z $u_repo ]; then | |
38 | # get versions | |
39 | . $repo_path/$port/Pkgfile | |
40 | u_port_version=$version-$release | |
41 | . $overlay_path/$port/Pkgfile | |
42 | o_port_version=$version-$release | |
43 | if [ "$u_port_version" != "$o_port_version" ]; then | |
44 | printf "%-20s %-20s %-s\n" $port "$o_port_version" "$u_port_version ($u_repo)" >> $TMP_FILE | |
45 | fi | |
fe885325 JB |
46 | fi |
47 | done | |
6b68e962 JB |
48 | |
49 | # print results | |
50 | if [ "$(wc -l $TMP_FILE | cut -d' ' -f1)" != "0" ]; then | |
51 | echo "Results for overlay: $overlay" | |
52 | printf "%-20s %-20s %-s\n" "PORT" "VERSION" "UPSTREAM" | |
fe885325 JB |
53 | cat $TMP_FILE && : > $TMP_FILE |
54 | echo | |
55 | fi | |
56 | } | |
57 | ||
58 | if [ $# -lt 1 ]; then | |
6b68e962 | 59 | echo "Usage: $(basename $0) [overlay_repo]" |
fe885325 JB |
60 | exit 1 |
61 | fi | |
62 | ||
fe885325 | 63 | for TARGET in $@; do |
6b68e962 | 64 | TMP_FILE=$(mktemp) |
fe885325 | 65 | checkOverlayUpdates $TARGET |
6b68e962 | 66 | rm -f $TMP_FILE |
fe885325 JB |
67 | done |
68 | ||
fe885325 | 69 | # End of file |