Search
SailfishOS Open Build Service
>
Projects
>
nemo
>
setup
> sync_cobs.sh
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File sync_cobs.sh of Package setup
#!/bin/bash # uncomment this if you are running gnmoe but don't want osc to use the keyring #unset GNOME_DESKTOP_SESSION_ID API_URL=https://api.merproject.org/ MAPPINGS=( "cobs:CE:Adaptation:N900 nemo:devel:hw:ti:omap3:n900" "cobs:CE:Adaptation:N950-N9 nemo:devel:hw:ti:omap3:n950-n9" "cobs:CE:Adaptation:N9xx-common nemo:devel:hw:ti:omap3:n9xx-common" "cobs:CE:Adaptation:PandaBoard nemo:devel:hw:ti:omap4:pandaboard" "cobs:CE:Adaptation:x86-generic nemo:devel:hw:x86-common" "cobs:CE:Adaptation:template nemo:devel:hw:template" "cobs:CE:MW:Shared nemo:devel:mw" "cobs:CE:UX:MTF nemo:devel:ux" "cobs:CE:Apps nemo:devel:apps" ) read_dom () { local IFS=\> read -d \< ENTITY CONTENT } get_srcmd5 () { osc -A ${API_URL} api /source/$1/$2 | while read_dom ; do if [[ $ENTITY = "directory"* ]]; then read foo name rev vrev srcmd5 <<< $ENTITY echo $srcmd5 exit fi done } pkg_in () { for p in $1; do if [[ x"$p" = x"$2" ]] ; then echo YES exit fi done } main () { for MAP in "${MAPPINGS[@]}" do echo echo "Doing $MAP" read src_prj dst_prj <<< $MAP echo "syncing prjconf ..." osc -A ${API_URL} meta prjconf $src_prj | osc -A ${API_URL} meta prjconf $dst_prj -F - echo dst_prj_list="$(osc -A ${API_URL} ls $dst_prj | xargs)" src_prj_list="$(osc -A ${API_URL} ls $src_prj | xargs)" for pkg in $src_prj_list; do if [[ "x$pkg" = "x_pattern" ]]; then continue fi echo -n "Looking at $src_prj $pkg " if [[ "x$(pkg_in "$dst_prj_list" $pkg)" = "xYES" ]]; then srcmd5="$(get_srcmd5 $src_prj $pkg)" if [[ x"$srcmd5" = x"" ]]; then echo "empty response. Skipping" continue fi echo -n "($srcmd5) ... " echo -n "exists in $dst_prj " dstmd5="$(get_srcmd5 $dst_prj $pkg)" if [[ x"$dstmd5" = x"" ]]; then echo "empty response. Skipping" continue fi echo -n "($dstmd5) ..." if [[ "x$dstmd5" = "x$srcmd5" ]]; then echo " and hasn't changed. Skipping." continue fi fi echo "Copying." osc -A ${API_URL} copypac $src_prj $pkg $dst_prj echo done for pkg in $dst_prj_list; do if [[ "x$pkg" = "x_pattern" ]]; then continue fi echo echo -n "Looking at $dst_prj $pkg " if [[ "x$(pkg_in "$src_prj_list" $pkg)" = "xYES" ]]; then echo -n "exists in both source and destination. Skipping." continue else echo -n "does not exist in $src_prj ... Deleting." osc -A ${API_URL} rdelete $dst_prj $pkg -m "sync removal" fi echo done done } main