3 # This script gets ports from an overlay that need to be updated
5 # Requeriments: You need 'ports' and 'prt-get' installed
6 # Note: Before execute this script you should be run 'ports -u' to be sure
9 checkOverlayUpdates
() {
13 # check for a valid overlay
15 core-arm
|opt-arm
|xorg-arm
|contrib-arm
) ;;
16 cubieboard-arm
|cubieboard2-arm
|efikamx-arm
|raspberrypi-arm
) ;;
18 echo "Error, unsupported overlay: $overlay"
23 # get a list of ports in the overlay
24 overlay_path
=$
(grep 'destination' /etc
/ports
/$overlay.
{rsync
,httpup
} 2>/dev
/null
| cut
-d'=' -f2)
25 overlay_ports
=$
(find $overlay_path -type f
-name 'Pkgfile' -exec dirname {} \
; | sed "s|$overlay_path/||g")
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
36 # show differences between upstream port and overlayed port
37 if [ ! -z $u_repo ]; then
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
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"
53 cat $TMP_FILE && : > $TMP_FILE
59 echo "Usage: $(basename $0) [overlay_repo]"
65 checkOverlayUpdates
$TARGET