summaryrefslogtreecommitdiff
path: root/contrib/source-checker/bump.preferred-xorg-versions-live.sh
blob: 63ae0f4b281302b24ba67239988496b1ce00bcca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/bash
DATE=`date +%Y%m%d`
SCRDIR=`dirname $0`
DIR=${SCRDIR}/${DATE}
PREFIX=http://xorg.freedesktop.org/releases/individual/
GRPS="app data doc driver font lib proto util xserver"
OETREE=${SCRDIR}/../..
PREFS_LIVE=${OETREE}/conf/distro/include/preferred-xorg-versions-live.inc
BBS=${OETREE}/recipes/xorg-
OUT_LOG=${DIR}.log
OUT_CMD=${DIR}.cmd

export LC_ALL=c

mkdir -p ${DIR}

function latest {
  IN=$1
  OUT=$2
  echo "Parsing latest from ${IN} to ${OUT}"
  sed "s/<a href=\"/\nPKG=/g" ${IN} | grep "^PKG=" | sed "s/^\([^\"]*\)\">.*$/\1/g" | grep "bz2$" | sort -V > ${IN}.tmp
  for PKG in `sed "s/^\(.*\)-\([^-]*\)$/\1/g" ${IN}.tmp | sort -u`; do
    grep ${PKG} ${IN}.tmp | tail -n 1 | sed 's/xorg-server/xserver-xorg/g' >> ${OUT};
  done
}

function updateVersions {
  PKG=$1
  GRP=$2
  VER=$3
  BB_VER=`ls -1 ${BBS}${GRP}/${PKG}_*.bb 2>/dev/null | sed "s%${BBS}${GRP}/${PKG}_%%g; s%.bb$%%g" | grep -v X11R7.0 | grep -v cvs | grep -v git | grep -v svn | sort -V | tail -n 1`
  #echo ${GRP}/${PKG}/${VER} ${PREF_VER} ${BB_VER}
  if ls -1 ${BBS}${GRP}/${PKG}_*.bb >/dev/null 2>/dev/null ; then
    echo "PREFERRED_VERSION_${PKG} ?= \"${VER}\"" >> ${PREFS_LIVE}
  fi
  if [[ -n ${BB_VER} && ${BB_VER} != ${VER} ]] ; then
    echo "bump: $GRP ${PKG} ${BB_VER} -> ${VER}" | tee -a ${OUT_LOG}
    echo "cp ${BBS}${GRP}/${PKG}_${BB_VER}.bb ${BBS}${GRP}/${PKG}_${VER}.bb" >> ${OUT_CMD}
  fi
  if [[ -z ${BB_VER} ]] ; then
    echo "new ${GRP} ${PKG}/${VER}" | tee -a ${OUT_LOG}
  fi
}

for GRP in ${GRPS}; do
  if [[ ! -e ${DIR}/${GRP}.html ]] ; then
    wget ${PREFIX}/${GRP} -O ${DIR}/${GRP}.html
  fi
  latest ${DIR}/${GRP}.html ${DIR}/${GRP}.txt
  echo "#${GRP}" >> ${DIR}/latest.txt
  sed "s/PKG=/${GRP}\//g; s/-\([^-]*\).tar.bz2$/\/\1/g;" ${DIR}/${GRP}.txt | gawk '{ print tolower($0) }' >> ${DIR}/latest.txt
done

sort -u ${DIR}/latest.txt > ${DIR}/latest.sort.txt
 
echo "#`date`" > ${PREFS_LIVE}

echo "#`date`" > ${OUT_LOG}
echo "#`date`" > ${OUT_CMD}

cat ${DIR}/latest.txt | while read LINE; do
  if [[ ${LINE} =~ \#.* ]]; then
    echo ${LINE} >> ${PREFS_LIVE}
    continue
  fi
  #echo ${LINE};
  PKG=`echo ${LINE} | sed "s%^\(.*\)\/\(.*\)\/\(.*\)$%\2%g;"`
  GRP=`echo ${LINE} | sed "s%^\(.*\)\/\(.*\)\/\(.*\)$%\1%g;"`
  VER=`echo ${LINE} | sed "s%^\(.*\)\/\(.*\)\/\(.*\)$%\3%g;"`
  updateVersions ${PKG} ${GRP} ${VER}
  updateVersions ${PKG}-native ${GRP} ${VER}
done

echo "Check ${OUT_LOG} if there is something new and interesting"
echo "You can update prefs or copy bbfiles with commands from ${OUT_CMD}"