CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
buildAllPackages.sh: Updates and fixes:
[devtools.git] / checkOverlayUpdates.sh
1 #!/bin/bash
2 #
3 # This script gets ports from an overlay that need to be updated
4 #
5 # Requeriments: You need 'ports' and 'prt-get' installed
6 # Note: Before execute this script you should be run 'ports -u' to be sure
7 # you're up to date
8
9 checkOverlayUpdates() {
10
11 overlay=$1
12
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 ;;
21 esac
22
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")
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
46 fi
47 done
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"
53 cat $TMP_FILE && : > $TMP_FILE
54 echo
55 fi
56 }
57
58 if [ $# -lt 1 ]; then
59 echo "Usage: $(basename $0) [overlay_repo]"
60 exit 1
61 fi
62
63 for TARGET in $@; do
64 TMP_FILE=$(mktemp)
65 checkOverlayUpdates $TARGET
66 rm -f $TMP_FILE
67 done
68
69 # End of file