aboutsummaryrefslogtreecommitdiffstats
path: root/git-devproj.sh
diff options
context:
space:
mode:
Diffstat (limited to 'git-devproj.sh')
-rwxr-xr-xgit-devproj.sh21
1 files changed, 15 insertions, 6 deletions
diff --git a/git-devproj.sh b/git-devproj.sh
index 2565e24..1d1cb04 100755
--- a/git-devproj.sh
+++ b/git-devproj.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Requires: coreutils, curl, jq, git
+# Requires: coreutils, osc, xmlstarlet, git
set -ue
usage () {
@@ -18,6 +18,10 @@ die () {
OBS_LOGIN="$(osc who |cut -d: -f 1)"
+# If we are in a project checkout, what's its name?
+CUR_PRJ=""
+[ -d '.osc/' ] && CUR_PRJ="$(cat .osc/_project)"
+
# Do we have our own configuration for MYORG?
MYORG="$(git config --get --default '' obs.org)"
[ -z "${MYORG}" ] && MYORG="${OBS_LOGIN}"
@@ -33,7 +37,7 @@ fi
if [ $# -gt 2 ] ; then
if [ "$3" = "." ] ; then
- TRGPRJ="$(basename "$(pwd -P)")"
+ TRGPRJ="$CUR_PRJ"
else
TRGPRJ="$3"
fi
@@ -45,10 +49,15 @@ fi
# we have to encode \# as %23.
SCM_URL="https://src.opensuse.org/${MYORG}/${PKG}"
-if [ "x$(basename "$(pwd -P)")" != "x$TRGPRJ" ] ; then
- if [ ! -d "$TRGPRJ" ] ; then
- osc meta prj "$SRCPRJ" | sed -E -e 's/(<project name=")([^"]+)">/\1'"$TRGPRJ"'">/' \
- | osc meta prj -F - "$TRGPRJ"
+if [ "x$CUR_PRJ" != "x$TRGPRJ" ] ; then
+ if ! osc ls "$TRGPRJ" >/dev/null 2>&1 ; then
+ osc meta prj "$SRCPRJ" \
+ | xmlstarlet ed \
+ -d "/project/person[@userid!='${OBS_LOGIN}']" \
+ -d "/project/group" \
+ -u "/project/@name" -v "$TRGPRJ" \
+ -u "/project/title" -v "Development branch of ${SRCPRJ}" \
+ | osc meta prj -F - "$TRGPRJ"
osc meta prjconf "$SRCPRJ" | osc meta prjconf -F - "$TRGPRJ"
fi