3 API=https://api.tizen.org
11 function parallel_jobs {
12 local max_number=$((0 + ${1:-0}))
15 if [[ $(jobs -p | wc -l) -lt $max_number ]]; then
22 function check_package() {
26 # fetch file list for each package and deduce type
27 for filename in $(osc -A $API ls -u $PRJ $pkg); do
29 _aggregate) pkgtype="A"; break;;
30 _link) pkgtype="L"; break;;
31 _service) pkgtype="S"; break;;
32 *) pkgtype="U"; break;;
37 # uddate aggregate and link packages
41 osc -A $API api /source/$PRJ/$pkg/_aggregate >$pkg/_aggregate
42 osc -A $API api /source/$PRJ/$pkg/_meta >$pkg/_meta
47 osc -A $API api /source/$PRJ/$pkg/_link >$pkg/_link
48 osc -A $API api /source/$PRJ/$pkg/_meta >$pkg/_meta
49 if grep '<build' $pkg/_meta &>/dev/null; then
50 msg="$msg (updated, with meta)"
57 content=$(osc -A $API api /source/$PRJ/$pkg/_meta)
58 if echo $content | grep -q '<build>' ; then
60 echo $content >$pkg/_meta
70 if [ "$ACTION" == 'get' ] ; then
71 # fetch project config
72 echo "Fetching project config for $PRJ"
73 osc -A $API meta prjconf $PRJ >_config
76 echo "Fetching project meta for $PRJ"
77 osc -A $API meta prj $PRJ >_meta
79 # check that each subdir exists on OBS project
81 for file in $(ls */@(_aggregate|_link)); do
84 if ! osc -A $API ls $PRJ $pkg &>/dev/null; then
85 echo "Package $pkg was removed on OBS. Removing dir $pkg."
90 osc -A $API ls $PRJ | while read pkg; do
91 parallel_jobs $PARALLEL_JOBS
96 elif [ "$ACTION" == 'put' ] ; then
97 find . -type f | while read path; do
98 path=$(echo $path|cut -d/ -f2-)
99 echo Sending $path to $PRJ
100 osc -A $API api -X PUT /source/$PRJ/$path -f $path
103 >&2 echo "Error: Unknown action: $ACTION"