CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
buildAllPackages.sh: Updates and fixes:
[devtools.git] / checkOverlayUpdates.sh
CommitLineData
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
9checkOverlayUpdates() {
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
58if [ $# -lt 1 ]; then
6b68e962 59 echo "Usage: $(basename $0) [overlay_repo]"
fe885325
JB
60 exit 1
61fi
62
fe885325 63for TARGET in $@; do
6b68e962 64 TMP_FILE=$(mktemp)
fe885325 65 checkOverlayUpdates $TARGET
6b68e962 66 rm -f $TMP_FILE
fe885325
JB
67done
68
fe885325 69# End of file