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:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal 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
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
35
obs-service-set_version.spec
Normal file
35
obs-service-set_version.spec
Normal 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
74
set_version
Normal 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
16
set_version.service
Normal 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>
|
||||
|
Reference in New Issue
Block a user