From 1e3fec3de0ab2713408d7ac736d82d1f1fa41394453874581dc55369c1881ec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Mon, 18 Oct 2010 12:49:11 +0000 Subject: [PATCH] osc copypac from project:openSUSE:Tools:Unstable package:obs-service-extract_file revision:2 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Tools/obs-service-extract_file?expand=0&rev=1 --- .gitattributes | 23 ++++++++++++ .gitignore | 1 + extract_file | 68 +++++++++++++++++++++++++++++++++++ extract_file.service | 13 +++++++ obs-service-extract_file.spec | 35 ++++++++++++++++++ 5 files changed, 140 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 extract_file create mode 100644 extract_file.service create mode 100644 obs-service-extract_file.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/extract_file b/extract_file new file mode 100644 index 0000000..ac872e0 --- /dev/null +++ b/extract_file @@ -0,0 +1,68 @@ +#!/bin/bash + +# A simple script to checkout or update a svn or git repo as source service + +# defaults +MYARCHIVE="" +MYFILES="" + +while test $# -gt 0; do + case $1 in + *-archive) + MYARCHIVE="${2##*/}" + shift + ;; + *-file) + MYFILES="$MYFILES ${2##*/}" + shift + ;; + *-outdir) + MYOUTDIR="$2" + shift + ;; + *) + echo Unknown parameter $1. + echo 'Usage: extract_file --archive $ARCHIVE --file $FILE --outdir $OUT' + exit 1 + ;; + esac + shift +done + +if [ -z "$MYARCHIVE" ]; then + echo "ERROR: no archive specified!" + exit 1 +fi +if [ -z "$MYFILES" ]; then + echo "ERROR: no checkout URL is given via --url parameter!" + exit 1 +fi +if [ -z "$MYOUTDIR" ]; then + echo "ERROR: no output directory is given via --outdir parameter!" + exit 1 +fi + +cd "$MYOUTDIR" + +existing_archive=$(echo $MYARCHIVE) +if [ -e "$existing_archive" ]; then + if [ "${existing_archive%.tar.gz}" != "$existing_archive" ]; then + tar xfz "$existing_archive" $MYFILES || exit 1 + elif [ "${existing_archive%.tar.bz2}" != "$existing_archive" ]; then + tar xfj "$existing_archive" $MYFILES || exit 1 + elif [ "${existing_archive%.tar.xz}" != "$existing_archive" ]; then + tar xfJ "$existing_archive" $MYFILES || exit 1 + elif [ "${existing_archive%.tar}" != "$existing_archive" ]; then + tar xf "$existing_archive" $MYFILES || exit 1 + elif [ "${existing_archive%.zip}" != "$existing_archive" ]; then + unzip "$existing_archive" $MYFILES || exit 1 + else + echo "ERROR: unknown archive format $existing_archive" + exit 1 + fi +else + echo "ERROR: archive not found: $existing_archive" + exit 1 +fi + +exit 0 diff --git a/extract_file.service b/extract_file.service new file mode 100644 index 0000000..c6878d5 --- /dev/null +++ b/extract_file.service @@ -0,0 +1,13 @@ + + Extract files from archive + This service can be used to extract a file from an tar or zip archive. This can be used to used a spec file directly from a tar. + + Archive to be used + + + + Files to extract + + + + diff --git a/obs-service-extract_file.spec b/obs-service-extract_file.spec new file mode 100644 index 0000000..60d6e87 --- /dev/null +++ b/obs-service-extract_file.spec @@ -0,0 +1,35 @@ + +Name: obs-service-extract_file +License: GPL v2 or later +Group: Development/Tools/Building +Summary: An OBS source service: Extract a file from an archive +Version: 0.1 +Release: 1 +Source: extract_file +Source1: extract_file.service +Requires: tar bzip2 gzip xz unzip +BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildArch: noarch + +%description +This is a source service for openSUSE Build Service. + +It supports to extract a file from an archive, for example a spec file from a tar. + + +%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 +