osc copypac from project:openSUSE:Tools:Unstable package:obs-service-set_version revision:4

OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/obs-service-set_version?expand=0&rev=1
This commit is contained in:
2010-10-18 12:49:16 +00:00
committed by Git OBS Bridge
commit 0f2f27aac3
5 changed files with 149 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

View File

@@ -0,0 +1,35 @@
Name: obs-service-set_version
License: GPL v2 or later
Group: Development/Tools/Building
Summary: An OBS source service: Update spec file version
Version: 0.1
Release: 1
Source: set_version
Source1: set_version.service
Requires: sed
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
%description
This is a source service for openSUSE Build Service.
Very simply script to update the version in .spec or .dsc files according to
a given version or to the existing files.
%prep
%setup -q -D -T 0 -n .
%build
%install
mkdir -p $RPM_BUILD_ROOT/usr/lib/obs/service
install -m 0755 %{SOURCE0} $RPM_BUILD_ROOT/usr/lib/obs/service
install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/obs/service
%files
%defattr(-,root,root)
%dir /usr/lib/obs
/usr/lib/obs/service

74
set_version Normal file
View File

@@ -0,0 +1,74 @@
#!/bin/bash
# A simple script to update spec or dsc file
# very, very simple. I am happy about patches which handles multiple files with different version numbers
# defaults
MYVERSION=""
FILES=""
while test $# -gt 0; do
case $1 in
*-version)
MYVERSION="$2"
shift
;;
*-file)
FILES="$FILES ${2##*/}"
shift
;;
*-basename)
BASENAME="^$2"
shift
;;
*-outdir)
MYOUTDIR="$2"
shift
;;
*)
echo Unknown parameter $1.
echo 'Usage: set_version --version $VERSION --file $FILE --outdir $OUT'
exit 1
;;
esac
shift
done
if [ -z "$MYVERSION" ]; then
MYVERSION=`ls -1 | sed -n "s,$BASENAME.*-\([0123456789].*\).tar.*,\1,p" | head -n 1`
fi
if [ -z "$MYVERSION" ]; then
MYVERSION=`ls -1 | sed -n "s,$BASENAME.*-\([0123456789].*\).tgz$,\1,p" | head -n 1`
fi
if [ -z "$MYVERSION" ]; then
MYVERSION=`ls -1 | sed -n "s,$BASENAME.*-\([0123456789].*\).zip$,\1,p" | head -n 1`
fi
if [ -z "$MYVERSION" ]; then
echo "ERROR: no version is given and can't get detected automatically"
exit 1
fi
if [ -z "$FILES" ]; then
FILES="*.spec *.dsc"
fi
if [ -z "$MYOUTDIR" ]; then
echo "ERROR: no output directory is given via --outdir parameter!"
exit 1
fi
for i in $FILES; do
FILE=`ls -1 $i 2>/dev/null`
[ -e "$FILE" ] || continue
sed "s,^Version:.*,Version: $MYVERSION," "$FILE" > "$MYOUTDIR/$FILE" || exit 1
if [ "${FILE%.spec}" != "$FILE" ]; then
# set release back to zero after version upgrade, will be increased by OBS during build
sed "s,^Release:.*,Release: 0," "$FILE" > "$MYOUTDIR/$FILE" || exit 1
fi
if [ "${FILE#_service:}" != "$FILE" ]; then
# we can remove service files, no need to store them twice
rm -f "$FILE"
fi
done
exit 0

16
set_version.service Normal file
View File

@@ -0,0 +1,16 @@
<service name="set_version">
<summary>Updates version in spec file</summary>
<description>This service updates a spec file according to the existing files.
Can be used after download_url or tar_scm service.
</description>
<parameter name="version">
<description>Set version to this value, otherwise autodetection is running.</description>
</parameter>
<parameter name="basename">
<description>Limit version detection to files which start with given name.</description>
</parameter>
<parameter name="file">
<description>Update only the given file.</description>
</parameter>
</service>