SOURCES: mplayer-skins-generate.sh (NEW) - script to update add mp...

glen glen at pld-linux.org
Sat Oct 1 19:53:16 CEST 2005


Author: glen                         Date: Sat Oct  1 17:53:16 2005 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- script to update add mplayer skins to spec

---- Files affected:
SOURCES:
   mplayer-skins-generate.sh (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/mplayer-skins-generate.sh
diff -u /dev/null SOURCES/mplayer-skins-generate.sh:1.1
--- /dev/null	Sat Oct  1 19:53:16 2005
+++ SOURCES/mplayer-skins-generate.sh	Sat Oct  1 19:53:11 2005
@@ -0,0 +1,122 @@
+#!/bin/sh
+# location for mplayer skins
+url='ftp://ftp1.mplayerhq.hu/MPlayer/Skin/'
+
+# this script must reside inSOURCES dir
+set -e
+dir=$(dirname "$0")
+cd "$dir"
+cd ../SOURCES # this makes sure we're in right place
+
+spec='../SPECS/mplayer-skins-new.spec'
+#rm -f .listing
+#wget -r -np -nd -c "$url" --no-remove-listing
+
+add_skin() {
+	local file="$1"; shift
+	local skin="$1"; shift
+	local version="$1"; shift
+	local tmpf=$(mktemp "${TMPDIR:-/tmp}/fragXXXXXX")
+
+	# add preamble
+	sed > $tmpf -e "
+	s, at file@,$file,g
+	s, at skin@,$skin,g
+	s, at version@,$version,g
+	" <<'EOF'
+%package -n mplayer-skin- at skin@
+Summary:	@skin@ skin
+Summary(pl):	Skórka @skin@
+Version:	@version@
+Group:		X11/Applications/Multimedia
+Requires:	gmplayer
+Provides:	mplayer-skin
+Obsoletes:	mplayer-skins
+
+EOF
+	sed -i -e "/NEW SKIN MARKER: PREAMBLE/r $tmpf" $spec
+
+	# add %post
+	sed > $tmpf -e "
+	s, at file@,$file,g
+	s, at skin@,$skin,g
+	s, at version@,$version,g
+	" <<'EOF'
+%post -n mplayer-skin- at skin@
+if [ "$1" = 1 ]; then
+	ln -snf @skin@ %{_skindir}/default
+fi
+
+EOF
+	sed -i -e "/NEW SKIN MARKER: POST/r $tmpf" $spec
+
+	# add %files
+	sed > $tmpf -e "
+	s, at file@,$file,g
+	s, at skin@,$skin,g
+	s, at version@,$version,g
+	" <<'EOF'
+
+%files -n mplayer-skin- at skin@
+%defattr(644,root,root,755)
+%{_skindir}/@skin@
+EOF
+	sed -i -e "/NEW SKIN MARKER: FILES/r $tmpf" $spec
+
+	# find free source nr
+	last=$(grep -o '^Source[0-9]\+' $spec | sed -s 's,^Source,,' | sort -n | tail -n 1)
+	nr=$((last + 1))
+	md5=$(awk '{print $1}' $file.md5)
+	sed -i -e "/^Source$last:/{n;a\
+Source$nr:	$url$file\\
+# Source$nr-md5:	$md5
+}" $spec
+
+	unpack="bzip2 -dc %{SOURCE$nr}"
+	# add unpack
+	sed > $tmpf -e "
+	s, at file@,$file,g
+	s, at skin@,$skin,g
+	s, at version@,$version,g
+	s, at unpack@,$unpack,g
+	" <<'EOF'
+ at unpack@ | tar -x -C $RPM_BUILD_ROOT%{_skindir}
+EOF
+	sed -i -e "/NEW SKIN MARKER: UNPACK/r $tmpf" $spec
+
+	rm -f $tmpf
+}
+
+update_skin() {
+	local file="$1"; shift
+	local skin="$1"; shift
+	local version="$1"; shift
+
+	md5=$(awk '{print $1}' $file.md5)
+	sed -i -e "
+	/^Source[0-9]\+:.*\/$skin-[0-9]/{
+		s/$skin-.*/$file/
+		n
+		s/\(# Source[0-9]\+-md5:\t\).*/\1$md5/
+	}
+	" $spec
+
+	sed -i -e "/./{H;\$!d;};x;/%package -n mplayer-skin-$skin/{
+		/Version:/s/Version:\t[\.0-9]*/Version:\t$version/
+	}" $spec
+}
+
+files=$(grep -o '[^ ]*\.tar\.bz2' .listing | sort -u)
+for file in $files; do
+	skin=$(basename $file .tar.bz2)
+	name=$(echo "$skin" | sed -e 's,-[.0-9]\+,,')
+	version=$(echo "$skin" | sed -e 's,^.*-\([.0-9]\+\),\1,')
+	echo -n "$skin: $name $version "
+	if grep -q "^Source[0-9]\+:.*$name-" $spec; then
+		echo "HAVE"
+		update_skin $file $name $version
+	else
+		echo "DON'T HAVE"
+		add_skin $file $name $version
+	fi
+done
================================================================



More information about the pld-cvs-commit mailing list