Author: orw Date: Thu Jul 10 09:11:14 2014 New Revision: 1609427 URL: http://svn.apache.org/r1609427 Log: bash script inclusive needed meta data to generate Update Feeds
Added: openoffice/devtools/genUpdateFeed/ openoffice/devtools/genUpdateFeed/AdditionalTextForMacOSX.txt openoffice/devtools/genUpdateFeed/LanguageCodeMap.txt openoffice/devtools/genUpdateFeed/ProductInfos.txt openoffice/devtools/genUpdateFeed/feed-entry-template.Update (with props) openoffice/devtools/genUpdateFeed/feed-prefix.Update (with props) openoffice/devtools/genUpdateFeed/generate-update-feed.sh (with props) Added: openoffice/devtools/genUpdateFeed/AdditionalTextForMacOSX.txt URL: http://svn.apache.org/viewvc/openoffice/devtools/genUpdateFeed/AdditionalTextForMacOSX.txt?rev=1609427&view=auto ============================================================================== --- openoffice/devtools/genUpdateFeed/AdditionalTextForMacOSX.txt (added) +++ openoffice/devtools/genUpdateFeed/AdditionalTextForMacOSX.txt Thu Jul 10 09:11:14 2014 @@ -0,0 +1,45 @@ +# Additional text for installed OpenOffice instance on Mac OS X +# + +en-US,Only for Mac OS X versions 10.7 or newer +ar,ÙÙØ· Ùإصدارات Ùظا٠اÙتشغÙÙ Mac OS X 10.7 أ٠أØدث +ast,Only for Mac OS X versions 10.7 or newer +bg,Само за Mac OS X 10.7 или по-нова веÑÑÐ¸Ñ +ca,Only for Mac OS X versions 10.7 or newer +ca-XV,Only for Mac OS X versions 10.7 or newer +cs,Pouze pro Mac OS verze 10.7 a novÄjÅ¡Ã +da,Kun for Mac OS X version 10.7 eller nyere +de,Nur für Mac OS X-Versionen 10.7 oder neuer +el,ÎÏνο για Mac OS X εκδÏÏÎµÎ¹Ï 10.7 ή νεÏÏεÏο +en-GB,Only for Mac OS X versions 10.7 or newer +es,Sólo para versiones de Mac OS X 10.7 o más reciente +eu,Mac OS X bertsioak soilik 10.7 edo berriagoa +fi,Vain Mac OS X-versiot 10.7 tai uudempi +fr,Seulement pour les versions Mac OS X 10.7 ou plus récent +gd,Only for Mac OS X versions 10.7 or newer +gl,Só para as versións de Mac OS X 10.7 ou superior +he,רק ×¢××ר ×רס××ת Mac OS X 10.7 ×× ××ש ××תר +hi,मà¥à¤ à¤à¤à¤¸ à¤à¤à¥à¤¸ सà¤à¤¸à¥à¤à¤°à¤£à¥à¤ à¤à¥ लिठ10.7 या नठ+hu,Csak a Mac OS X 10.7 vagy újabb verzió +it,Solo per Mac OS X 10.7 o superiore +ja,å¯ä¸ã®Mac OS Xãã¼ã¸ã§ã³10.7以é +km,ááááá¶áááááááá Mac OS X 10.7 á¬áááá¸áá¶á +ko,ì¤ì§ 맥 OS X ë²ì 10.7 ì´ì ë²ì +lt,Tik Mac OS X versijos 10.7 arba naujesnÄ +nb,Bare for Mac OS X versjon 10.7 eller nyere +nl,Alleen voor Mac OS X-versies 10.7 of nieuwer +pl,Tylko dla wersji Mac OS X 10.7 lub nowszy +pt,Somente para as versões do Mac OS X 10.7 ou mais recente +pt-BR,Somente para as versões do Mac OS X 10.7 ou mais recente +ru,ТолÑко Ð´Ð»Ñ Mac OS X веÑÑий 10.7 или новее +sk,Iba pre Mac OS verzie 10.7 a novÅ¡ie +sl,Samo za Mac OS X 10.7 ali novejÅ¡i +sr,Само за ÐÐ°Ñ ÐС ÐÑ 10.7 или новиÑи веÑзиÑе +sv,Endast för Mac OS X-versioner 10.7 eller nyare +ta,à®à®°à¯ Mac OS X, பதிபà¯à®ªà¯à®à®³à¯ 10.7 ஠லà¯à®²à®¤à¯ பà¯à®¤à®¿à®¯ +th,à¹à¸à¸à¸²à¸°à¸ªà¸³à¸«à¸£à¸±à¸ Mac OS X รุà¹à¸ 10.7 หรืà¸à¹à¸«à¸¡à¹à¸à¸§à¹à¸² +tr,Sadece Mac OS X sürümleri için 10.7 veya daha yeni +vi,Chá» cho các phiên bản Mac OS X 10.7 hoặc má»i hÆ¡n +zh-CN,ä» éç¨äºMac OS Xçæ¬10.7ææ´é«çæ¬ +zh-TW,å é©ç¨æ¼Mac OS Xçæ¬10.7ææ´é«çæ¬ + Added: openoffice/devtools/genUpdateFeed/LanguageCodeMap.txt URL: http://svn.apache.org/viewvc/openoffice/devtools/genUpdateFeed/LanguageCodeMap.txt?rev=1609427&view=auto ============================================================================== --- openoffice/devtools/genUpdateFeed/LanguageCodeMap.txt (added) +++ openoffice/devtools/genUpdateFeed/LanguageCodeMap.txt Thu Jul 10 09:11:14 2014 @@ -0,0 +1,51 @@ +# Map of language codes +# +# Format: +# LANGUAGECODE,LANGUAGE,DOWNLOADURL +# +# Legend: +# LANGUAGECODE Language code of an released language +# LANGUAGE Human-readable language name +# DOWNLOADURL optional URL the user is guided to for corresponding package in the named language + +en-US,English (US) +ar,Arabic +ast,Asturian +bg,Bulgarian +ca,Catalan +ca-XV,Catalan (Valencia AVL) +cs,Czech,http://www.openoffice.org/cs/download +da,Danish +de,German,http://www.openoffice.org/de +el,Greek +en-GB,English (British) +es,Spanish,http://www.openoffice.org/es/descargar +eu,Basque +fi,Finnish +fr,French,http://www.openoffice.org/fr/Telecharger +gd,Gaelic (Scottish) +gl,Galician +he,Hebrew +hi,Hindi +hu,Hungarian +it,Italian,http://www.openoffice.org/it/download +ja,Japanese,http://www.openoffice.org/ja/download +km,Khmer +ko,Korean +lt,Lituanian +nb,Norwegian (BokmÃ¥l) +nl,Dutch,http://www.openoffice.org/nl/downloaden.html +pl,Polish +pt,Portuguese (European),http://www.openoffice.org/pt +pt-BR,Portuguese (Brazilian) +ru,Russian +sk,Slovak,http://www.openoffice.org/sk/download +sl,Slovenian +sr,Serbian (Cyrillic) +sv,Swedish +ta,Tamil +th,Thai +tr,Turkish,http://www.openoffice.org/tr +vi,Vietnamese +zh-CN,Chinese (simplified),http://www.openoffice.org/zh-cn +zh-TW,Chinese (traditional),http://www.openoffice.org/zh-tw Added: openoffice/devtools/genUpdateFeed/ProductInfos.txt URL: http://svn.apache.org/viewvc/openoffice/devtools/genUpdateFeed/ProductInfos.txt?rev=1609427&view=auto ============================================================================== --- openoffice/devtools/genUpdateFeed/ProductInfos.txt (added) +++ openoffice/devtools/genUpdateFeed/ProductInfos.txt Thu Jul 10 09:11:14 2014 @@ -0,0 +1,38 @@ +# Information about the released AOO versions +# +# Format: +# VERSION PRODUCTNAME BUILDID DOWNLOADURL LANGUAGECODE LANGUAGECODE ... +# +# Legend: +# VERSION Version number of the product +# PRODUCTNAME Product name as given in the version.ini resp. versionrc file of the installation +# BUILDID BuildId also given in the version.ini resp. versionrc file of the installation +# DOWNLOADURL Default URL the user is guided to for corresponding packages +# LANGUAGECODE Language code of an released language + +3.4.0 OpenOffice.org_3 9590 http://www.openoffice.org/download/other-341.html en-US ar cs es gl hu it ja nl pt-BR ru zh-CN zh-TW + + +3.4.1 OpenOffice.org_3 9593 http://www.openoffice.org/download/other-341.html en-US ar ast cs da de en-GB es eu fi fr gd gl hu it ja km ko nb nl pl pt-BR ru sk sl sv zh-CN zh-TW + + +4.0.0 OpenOffice_4 9702 http://www.openoffice.org/download en-US ast cs de el en-GB es fi fr gd gl hu it ja ko nl pt pt-BR ru sk sl ta zh-CN + + +4.0.1 OpenOffice_4 9714 http://www.openoffice.org/download en-US ast cs de el en-GB es eu fi fr gd gl hu it ja km ko lt nl pl pt pt-BR ru sk sl sr sv ta tr vi zh-CN zh-TW + + +4.1.0 OpenOffice_4 9764 http://www.openoffice.org/download en-US ast bg cs da de el en-GB es eu fi fr gd gl he hi hu it ja km ko lt nb nl pl pt pt-BR ru sk sl sr sv ta th tr vi zh-CN zh-TW + +# temporary entry for 4.1.1 - BUILDID has to be corrected; list of LANGUAGECODEs has to be corrected +4.1.1 OpenOffice_4 9772 http://www.openoffice.org/download en-US ast bg ca ca-XV cs da de el en-GB es eu fi fr gd gl he hi hu it ja km ko lt nb nl pl pt pt-BR ru sk sl sr sv ta th tr vi zh-CN zh-TW + + + +# Product names for former OpenOffice versions +3.2.0 OpenOffice.org_3 +3.2.1 OpenOffice.org_3 +3.3.0 OpenOffice.org_3 + + +# end of file Added: openoffice/devtools/genUpdateFeed/feed-entry-template.Update URL: http://svn.apache.org/viewvc/openoffice/devtools/genUpdateFeed/feed-entry-template.Update?rev=1609427&view=auto ============================================================================== --- openoffice/devtools/genUpdateFeed/feed-entry-template.Update (added) +++ openoffice/devtools/genUpdateFeed/feed-entry-template.Update Thu Jul 10 09:11:14 2014 @@ -0,0 +1,16 @@ + <!-- %LANGUAGE% - %PLATFORMNAME% --> + <entry> + <title>Update available</title> + <category term="%PRODUCTNAME%_%LANGUAGECODE%" label="Apache OpenOffice update"/> + <summary>%ADDITIONALTEXT%</summary> + <content type="application/xml"> + <inst:description xmlns:inst="http://installation.openoffice.org/description"> + <inst:id>%PRODUCTNAME%_%LANGUAGECODE%</inst:id> + <inst:version>%NEWVERSION%</inst:version> + <inst:buildid>%NEWBUILDID%</inst:buildid> + <inst:os>%PLATFORM%</inst:os> + <inst:arch>%ARCHITECTURECODE%</inst:arch> + <inst:update type="text/html" src="%DOWNLOADURL%?utm_source=%DOWNLOADCODE%_%LANGUAGECODE%&utm_medium=Client&utm_campaign=Upgrade"/> + </inst:description> + </content> + </entry> Propchange: openoffice/devtools/genUpdateFeed/feed-entry-template.Update ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: openoffice/devtools/genUpdateFeed/feed-prefix.Update URL: http://svn.apache.org/viewvc/openoffice/devtools/genUpdateFeed/feed-prefix.Update?rev=1609427&view=auto ============================================================================== --- openoffice/devtools/genUpdateFeed/feed-prefix.Update (added) +++ openoffice/devtools/genUpdateFeed/feed-prefix.Update Thu Jul 10 09:11:14 2014 @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"> + <title>Update Feed for %INSTALLED% instances</title> + <updated>%UPDATED%</updated> + <author> + <name>Apache OpenOffice project</name> + <uri>http://openoffice.org</uri> + </author> + Propchange: openoffice/devtools/genUpdateFeed/feed-prefix.Update ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: openoffice/devtools/genUpdateFeed/generate-update-feed.sh URL: http://svn.apache.org/viewvc/openoffice/devtools/genUpdateFeed/generate-update-feed.sh?rev=1609427&view=auto ============================================================================== --- openoffice/devtools/genUpdateFeed/generate-update-feed.sh (added) +++ openoffice/devtools/genUpdateFeed/generate-update-feed.sh Thu Jul 10 09:11:14 2014 @@ -0,0 +1,241 @@ +#!/bin/bash +# +# bash script to generate the Update Feeds requested by installed AOO/OOo instance via HTTP/HTTPS +# to check, if a new AOO version is available for the requesting AOO/OOo instance +# +# Needed meta data: +# - information about released AOO/OOo versions - found in file "ProductInfos.txt" +# - information about the languages for which an AOO release exists - found in file "LanguageCodeMap.txt" +# - XML template for a feed entry - found in file "feed-entry-template.Update" +# - XML prefix of the Update Feed - found in file "feed-prefix.Update" +# - translations for string "Only for Mac OS X versions 10.7 or newer" - found in file "AdditionalTextForMacOSX.txt" +# + + +# check arguements +if [ ${#@} -ne 2 ]; then + echo Generate Update Feed for installed AOO/OOo instances + echo Usage: $0 [version accessing the Product Update Feed] [new version] + echo Output file: check.Update.[version accessing the Product Update Feed]-[new version] + exit +fi + + +INSTALLEDVERSION=$1 +RELEASE=$2 +echo Generate Update Feed for installed $INSTALLEDVERSION OpenOffice instances to upgrade to $RELEASE +echo + + +# read product information about release AOO/OOo versions +echo -n Reading information about released AOO/OOo versions... +PRODUCTINFO="ProductInfos.txt" +if [ ! -e $PRODUCTINFO ]; +then + echo File $PRODUCTINFO is missing; + exit; +fi + +declare -A productname; +declare -A productbuildid; +declare -A productdownloadurl; +declare -A langlatestrelease; +while read productinfoline +do + # skip empty lines and comments + if [[ -n $productinfoline ]] && [[ ${productinfoline:0:1} != "#" ]]; then + idx=0; + declare version + for data in $productinfoline; + do + if [ $idx -eq 0 ]; then + version=$data + # skip product versions released after the given $RELEASE + if [[ $version > $RELEASE ]]; then + break + fi + elif [ $idx -eq 1 ]; then + productname[$version]=$data + elif [ $idx -eq 2 ]; then + productbuildid[$version]=$data + elif [ $idx -eq 3 ]; then + productdownloadurl[$version]=$data + else + langlatestrelease[$data]=$version + fi + let idx++; + done + fi +done < $PRODUCTINFO +sortedlanglist=( $(echo ${!langlatestrelease[*]} | tr ' ' '\n' | sort | tr '\n' ' ') ) +echo done + + +# read language code map +echo -n Reading information about languages... +LANGMAP="LanguageCodeMap.txt" +if [ ! -e $LANGMAP ]; +then + echo File $LANGMAP is missing; + exit; +fi + +declare -A langname +declare -A langdownloadurl +while read langcodemapline +do + # skip empty lines and comments + if [[ -n $langcodemapline ]] && [[ ${langcodemapline:0:1} != "#" ]]; then + idx=0; + declare langcode + oldIFS=$IFS + IFS=, + for data in $langcodemapline; do + if [ $idx -eq 0 ]; then + langcode=$data + elif [ $idx -eq 1 ]; then + langname[$langcode]=$data + elif [ $idx -eq 2 ]; then + langdownloadurl[$langcode]=$data + fi + let idx++; + done + IFS=$oldIFS + fi +done < $LANGMAP +echo done + +# read additional text for Mac OS X +echo -n Reading translations for string [Only for Mac OS X versions 10.7 or newer]... +ADDTEXTMACOSX="AdditionalTextForMacOSX.txt" +if [ ! -e $ADDTEXTMACOSX ]; +then + echo File $ADDTEXTMACOSX is missing; + exit; +fi + +declare -A addtextformac +while read addtextformacline +do + # skip empty lines and comments + if [[ -n $addtextformacline ]] && [[ ${addtextformacline:0:1} != "#" ]]; then + idx=0; + declare langcode + oldIFS=$IFS + IFS=, + for data in $addtextformacline; do + if [ $idx -eq 0 ]; then + langcode=$data + elif [ $idx -eq 1 ]; then + addtextformac[$langcode]=$data + fi + let idx++; + done + IFS=$oldIFS + fi +done < $ADDTEXTMACOSX +echo done + +# generate Update Feed +echo +echo start generation of Update Feed + +FEED="check.Update."$INSTALLEDVERSION"-"$RELEASE + +if [ ! -e output ]; +then + mkdir output +fi +echo -n Update Feed $FEED will be found in " " +cd output + +declare platforms=(Windows MacOSX Linux Linux) +declare architectures +declare platformnames +if [[ $INSTALLEDVERSION > "4.0.1" ]]; then + architectures=(x86 X86_64 x86 X86_64) + platformnames=('Windows' 'Mac OS X 64bit' 'Linux 32bit' 'Linux 64bit') +else + architectures=(x86 x86 x86 X86_64) + platformnames=('Windows' 'Mac OS X' 'Linux 32bit' 'Linux 64bit') +fi + +FEED="check.Update."$INSTALLEDVERSION"-"$RELEASE +if [ -e $FEED ]; then + rm $FEED +fi +cat ../feed-prefix.Update | sed "s:%INSTALLED%:$INSTALLEDVERSION:g" | sed "s|%UPDATED%|$(date -u) UTC|g" > $FEED + +TEMPLATE="../feed-entry-template.Update" +if [ ! -e $TEMPLATE ]; then + echo File $TEMPLATE is missing; + exit; +fi +WORKTEMPLATE="working-template" +WORKING="working" + +# loop on the languages +for langidx in ${!sortedlanglist[*]} +do + echo -n feed entries for language ${sortedlanglist[$langidx]} - ${langname[${sortedlanglist[$langidx]}]} + + if [[ ${langlatestrelease[${sortedlanglist[$langidx]}]} < $INSTALLEDVERSION ]]; then + echo ..skipped as it its latest release was ${langlatestrelease[${sortedlanglist[$langidx]}]} + continue + fi + + cp $TEMPLATE $WORKTEMPLATE + sed "s/%LANGUAGE%/${langname[${sortedlanglist[$langidx]}]}/g" -i $WORKTEMPLATE + sed "s/%LANGUAGECODE%/${sortedlanglist[$langidx]}/g" -i $WORKTEMPLATE + sed "s/%PRODUCTNAME%/${productname[$INSTALLEDVERSION]}/g" -i $WORKTEMPLATE + + echo -n . + + declare newversion=${langlatestrelease[${sortedlanglist[$langidx]}]} + declare newbuildid=${productbuildid[$newversion]} + declare downloadurl + if [[ $newversion == $RELEASE ]] && [[ -n ${langdownloadurl[${sortedlanglist[$langidx]}]} ]]; then + downloadurl=${langdownloadurl[${sortedlanglist[$langidx]}]} + else + downloadurl=${productdownloadurl[${langlatestrelease[${sortedlanglist[$langidx]}]}]} + fi + if [[ $INSTALLEDVERSION < "4.0.0" ]]; then + newversion="- Apache OpenOffice "$newversion + fi + sed "s/%NEWVERSION%/$newversion/g" -i $WORKTEMPLATE + sed "s/%NEWBUILDID%/$newbuildid/g" -i $WORKTEMPLATE + sed "s|%DOWNLOADURL%|$downloadurl|g" -i $WORKTEMPLATE + + downloadcode=$(echo $INSTALLEDVERSION | tr '.' '_') + if [[ $INSTALLEDVERSION == "3.4.0" ]] || [[ $INSTALLEDVERSION > "3.4.0" ]]; then + downloadcode=AOO$downloadcode + else + downloadcode=OOo$downloadcode + fi + sed "s/%DOWNLOADCODE%/$downloadcode/g" -i $WORKTEMPLATE + + echo -n . + + declare addtext + for i in {0..3} + do + cp $WORKTEMPLATE $WORKING + sed "s/%PLATFORMNAME%/${platformnames[$i]}/g" -i $WORKING + sed "s/%PLATFORM%/${platforms[$i]}/g" -i $WORKING + sed "s/%ARCHITECTURECODE%/${architectures[$i]}/g" -i $WORKING + addtext="" + if [[ ${platforms[$i]} == "MacOSX" ]] && [[ $RELEASE > "4.0.1" ]] && [[ ${langlatestrelease[${sortedlanglist[$langidx]}]} == $RELEASE ]]; then + addtext=${addtextformac[${sortedlanglist[$langidx]}]} + fi + sed "s/%ADDITIONALTEXT%/$addtext/g" -i $WORKING + cat $WORKING >> $FEED + rm $WORKING + echo -n . + done + echo + rm $WORKTEMPLATE + echo >> $FEED + echo >> $FEED +done +echo "</feed>" >> $FEED +# end of file Propchange: openoffice/devtools/genUpdateFeed/generate-update-feed.sh ------------------------------------------------------------------------------ svn:executable = *