CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
Added checkOverlayUpdates.sh which gets ports from an overlay that need to be updated
[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#
5# Note: Before execute this script you should be run 'ports -u' to be sure
6# you're up to date
7
8checkOverlayUpdates() {
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
47if [ $# -lt 1 ]; then
48 echo "Usage: $(basename $0) [repo_overlay]"
49 exit 1
50fi
51
52TMP_FILE=$(mktemp)
53
54for TARGET in $@; do
55 checkOverlayUpdates $TARGET
56done
57
58rm -f $TMP_FILE
59
60# End of file