[TRE-538] Tizen:Mobile/TV/Wearable: Remove linkpac: rinato-linux-kernel
[scm/meta/obs.git] / update_meta.sh
index cb5956e..f569b30 100755 (executable)
@@ -1,7 +1,8 @@
 #!/bin/bash 
 
 API=https://api.tizen.org
-PRJ=${1:-Tizen:Common}
+ACTION=${1:-get}
+PRJ=${2:-Tizen:Common}
 
 PARALLEL_JOBS=8
 
@@ -44,40 +45,61 @@ function check_package() {
                L)
                        mkdir -p $pkg
                        osc -A $API api /source/$PRJ/$pkg/_link >$pkg/_link
-                       msg="$msg (updated)"
+                       osc -A $API api /source/$PRJ/$pkg/_meta >$pkg/_meta
+                       if grep '<build' $pkg/_meta &>/dev/null; then
+                               msg="$msg (updated, with meta)"
+                       else
+                               rm $pkg/_meta
+                               msg="$msg (updated)"
+                       fi
                        ;;
                *)
+                       content=$(osc -A $API api /source/$PRJ/$pkg/_meta)
+                       if echo $content | grep -q '<build>' ; then
+                               mkdir -p $pkg
+                               echo $content >$pkg/_meta
+                               msg="$msg (updated)"
+                       fi
                        ;;
        esac
-
        echo $msg
 }
 
 cd $PRJ
 
-# fetch project config
-echo "Fetching project config for $PRJ"
-osc -A $API meta prjconf $PRJ >_config
-
-# fetch project meta
-echo "Fetching project meta for $PRJ"
-osc -A $API meta prj $PRJ >_meta
+if [ "$ACTION" == 'get' ] ; then
+       # fetch project config
+       echo "Fetching project config for $PRJ"
+       osc -A $API meta prjconf $PRJ >_config
 
-# check that each subdir exists on OBS project
-shopt -s extglob
-for file in $(ls */@(_aggregate|_link)); do
-       pkg=$(dirname $file)
-       echo "Checking $pkg"
-       if ! osc -A $API ls $PRJ $pkg &>/dev/null; then
-               echo "Package $pkg was removed on OBS. Removing dir $pkg."
-               git rm -rf $pkg
-       fi
-done
-# fetch packages list 
-osc -A $API ls $PRJ | while read pkg; do
-       parallel_jobs $PARALLEL_JOBS
-       check_package $pkg &
-done
+       # fetch project meta
+       echo "Fetching project meta for $PRJ"
+       osc -A $API meta prj $PRJ >_meta
 
-parallel_jobs 1
+       # check that each subdir exists on OBS project
+       shopt -s extglob
+       for file in $(ls */@(_aggregate|_link)); do
+               pkg=$(dirname $file)
+               echo "Checking $pkg"
+               if ! osc -A $API ls $PRJ $pkg &>/dev/null; then
+                       echo "Package $pkg was removed on OBS. Removing dir $pkg."
+                       git rm -rf $pkg
+               fi
+       done
+       # fetch packages list
+       osc -A $API ls $PRJ | while read pkg; do
+               parallel_jobs $PARALLEL_JOBS
+               check_package $pkg &
+       done
 
+       parallel_jobs 1
+elif [ "$ACTION" == 'put' ] ; then
+       find . -type f | while read path; do
+               path=$(echo $path|cut -d/ -f2-)
+               echo Sending $path to $PRJ
+               osc -A $API api -X PUT /source/$PRJ/$path -f $path
+       done
+else
+       >&2 echo "Error: Unknown action: $ACTION"
+       exit 1
+fi