This is an automated email from the git hooks/post-receive script. smcv pushed a commit to branch master in repository game-data-packager.
commit ef152cfdee7baf9ed04c9300fa6cd885c7ee67ff Author: Simon McVittie <[email protected]> Date: Sun Jan 4 21:49:28 2015 +0000 game-data-packager: produce almost every .deb for which we have files The only exception is that if we have the full version, we won't produce demo/shareware versions. --- lib/game_data_packager/__main__.py | 59 +++++++++++++++++--------------------- lib/via-python | 51 +++++++++++++++++++------------- 2 files changed, 58 insertions(+), 52 deletions(-) diff --git a/lib/game_data_packager/__main__.py b/lib/game_data_packager/__main__.py index 8171e43..237d59e 100644 --- a/lib/game_data_packager/__main__.py +++ b/lib/game_data_packager/__main__.py @@ -105,43 +105,38 @@ def go(argv): raise SystemExit('Unable to complete any packages. ' + 'Please provide more files or directories.') - package = None - - # We can only build one package for now, because the shell script - # wrapper can only do one. Pick the "best": full if we have the - # right stuff, or expansion if we have the right stuff, or demo. - if len(possible) == 1: - for p in possible: - package = p - else: - for p in possible: - if p.type == 'full': - package = p - break - else: - for p in possible: - if p.type == 'expansion': - package = p - break - else: - # just pick the first one - for p in possible: - package = p - - logger.debug('chose to produce %s', package.name) + ready = set() + + have_full = False + for package in possible: + if package.type == 'full': + have_full = True + + for package in possible: + if have_full and package.type == 'demo': + # no point in packaging the demo if we have the full + # version + logger.debug('will not produce %s because we have a full ' + + 'version', package.name) + continue - if not game.fill_gaps(package=package, download=True, log=True): - raise SystemExit('Failed to download necessary files for %s', - package.name) + logger.debug('will produce %s', package.name) + if game.fill_gaps(package=package, download=True, log=True): + ready.add(package) + else: + logger.error('Failed to download necessary files for %s', + package.name) - if not game.fill_dest_dir(package, os.environ['DESTDIR']): + if not ready: sys.exit(1) - # FIXME: make the .deb (currently done in shell script by the wrapper) + for package in ready: + destdir = os.path.join(os.environ['WORKDIR'], + '%s.deb.d' % package.name) + if not game.fill_dest_dir(package, destdir): + sys.exit(1) - # This is a hack to communicate the name of the .deb to the shell - # script... - open(os.environ['WORKDIR'] + '/DEB_NAME', 'w').write(package.name) + # FIXME: make the .deb (currently done in shell script by the wrapper) if __name__ == '__main__': go(sys.argv[1:]) diff --git a/lib/via-python b/lib/via-python index 5102de8..ab80fd9 100644 --- a/lib/via-python +++ b/lib/via-python @@ -38,46 +38,57 @@ gdp_data_driven () { # We still do the actual .deb creation in shell, for now + if [ -e "$WORKDIR/DO-NOT-COMPRESS" ]; then + COMPRESS=no + fi + for DESTDIR in "$WORKDIR"/*.deb.d; do deb="${DESTDIR%.deb.d}" - deb="${DESTDIR##*/}" + deb="${deb##*/}" # it had better have a /usr and a DEBIAN directory or something has # gone very wrong if ! [ -e "$DESTDIR/usr" ]; then - echo "$DESTDIR/usr not found" >&2 + echo "internal error: $DESTDIR/usr not found" >&2 exit 1 fi if ! [ -e "$DESTDIR/DEBIAN" ]; then - echo "$DESTDIR/DEBIAN not found" >&2 + echo "internal error: $DESTDIR/DEBIAN not found" >&2 exit 1 fi - done - if [ "" = "$OUTDIR" ]; then - OUTFILE="$WORKDIR/out.deb" - else - OUTFILE="$(unravel "$OUTDIR")/${deb}_${VERSION_PREFIX:-}${GAME_PACKAGE_VERSION}_all.deb" - ln -s "$OUTFILE" "$WORKDIR/out.deb" - fi + output="${deb}_${VERSION_PREFIX:-}${GAME_PACKAGE_VERSION}_all.deb" - ( cd "$DESTDIR" && find usr -type f -print0 | xargs -0 md5sum ) > \ - "$WORKDIR/slipstream.unpacked/DEBIAN/md5sums" + if [ "" = "$OUTDIR" ]; then + OUTFILE="$WORKDIR/$output" + else + OUTFILE="$(unravel "$OUTDIR")/$output" + ln -s "$OUTFILE" "$WORKDIR/$output" + fi - if [ -e "$WORKDIR/DO-NOT-COMPRESS" ]; then - COMPRESS=no - fi + ( cd "$DESTDIR" && find usr -type f -print0 | xargs -0 md5sum ) > \ + "$DESTDIR/DEBIAN/md5sums" + + # slipstream_* assume this naming + if [ -e "$WORKDIR/slipstream.unpacked" ]; then + echo "internal error: $WORKDIR/slipstream.unpacked exists" >&2 + exit 1 + fi + mv "$DESTDIR" "$WORKDIR/slipstream.unpacked" + + debug "building .deb: $OUTFILE" + ( cd "$WORKDIR" && slipstream_instsize ) + ( cd "$WORKDIR" && slipstream_repack "$OUTFILE" ) - debug "building .deb: $OUTFILE" - ( cd "$WORKDIR" && slipstream_instsize ) - ( cd "$WORKDIR" && slipstream_repack "$OUTFILE" ) + rm -fr "$WORKDIR/slipstream.unpacked" + done # Special value to signal that gdp should just install every .deb # in $WORKDIR OUTFILE="*.deb" - rm -f "$WORKDIR/DEB_NAME" rm -f "$WORKDIR/DO-NOT-COMPRESS" + + # The Python code does all its work in this directory rm -fr "$WORKDIR/tmp" - rm -fr "$DESTDIR" } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

