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
59 if [ "$ACTION" == 'get' ] ; then
60 # fetch project config
61 echo "Fetching project config for $PRJ"
62 osc -A $API meta prjconf $PRJ >_config
65 echo "Fetching project meta for $PRJ"
66 osc -A $API meta prj $PRJ >_meta
68 # check that each subdir exists on OBS project
70 for file in $(ls */@(_aggregate|_link)); do
73 if ! osc -A $API ls $PRJ $pkg &>/dev/null; then
74 echo "Package $pkg was removed on OBS. Removing dir $pkg."
79 osc -A $API ls $PRJ | while read pkg; do
80 parallel_jobs $PARALLEL_JOBS
85 elif [ "$ACTION" == 'put' ] ; then
86 find . -type f | while read path; do
87 path=$(echo $path|cut -d/ -f2-)
88 echo Sending $path to $PRJ
89 osc -A $API api -X PUT /source/$PRJ/$path -f $path
92 >&2 echo "Error: Unknown action: $ACTION"