From owner-freebsd-ports@FreeBSD.ORG Tue Oct 18 20:08:01 2005 Return-Path: X-Original-To: ports@freebsd.org Delivered-To: freebsd-ports@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A301316A41F for ; Tue, 18 Oct 2005 20:08:01 +0000 (GMT) (envelope-from nox@saturn.kn-bremen.de) Received: from gwyn.kn-bremen.de (gwyn.kn-bremen.de [212.63.36.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id E11DD43D48 for ; Tue, 18 Oct 2005 20:08:00 +0000 (GMT) (envelope-from nox@saturn.kn-bremen.de) Received: from gwyn.kn-bremen.de (gwyn [127.0.0.1]) by gwyn.kn-bremen.de (8.13.4/8.13.4/Debian-3) with ESMTP id j9IK7q6X026410; Tue, 18 Oct 2005 22:07:52 +0200 Received: from saturn.kn-bremen.de (uucp@localhost) by gwyn.kn-bremen.de (8.13.4/8.13.4/Submit) with UUCP id j9IK7qNB026406; Tue, 18 Oct 2005 22:07:52 +0200 Received: from saturn.kn-bremen.de (localhost [127.0.0.1]) by saturn.kn-bremen.de (8.13.1/8.13.1) with ESMTP id j9IK5lN8026863; Tue, 18 Oct 2005 22:05:47 +0200 (CEST) (envelope-from nox@saturn.kn-bremen.de) Received: (from nox@localhost) by saturn.kn-bremen.de (8.13.1/8.13.1/Submit) id j9IK5kiW026862; Tue, 18 Oct 2005 22:05:46 +0200 (CEST) (envelope-from nox) From: Juergen Lock Date: Tue, 18 Oct 2005 22:05:44 +0200 To: Robert Millan Message-ID: <20051018200544.GA26528@saturn.kn-bremen.de> Mail-Followup-To: Robert Millan , ports@freebsd.org References: <20051018140137.GA16159@aragorn> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20051018140137.GA16159@aragorn> User-Agent: Mutt/1.4.2.1i Cc: ports@freebsd.org Subject: Re: gzip-like CLI wrapper for p7zip X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2005 20:08:01 -0000 On Tue, Oct 18, 2005 at 04:01:37PM +0200, Robert Millan wrote: > > Hi, > > I a small gzip-like wrapper for p7zip. The upstream developers don't seem to > like the idea, but it is going to be included in Debian, and I thought you might > want to provide it as well. For details, see: > > http://bugs.debian.org/334106 > > (the script is attached there) > > We intend to ask the gnu tar maintainers for a p7zip flag. Having this script > in the FreeBSD port would help in that regard. Well I could add it to the port (see below), but I think the need for tempfiles is unfortunate because it can cause problems like /tmp filling up. Maybe the 7z lib that cloop uses [1] [2] could be used for a `real' tempfile-less p7zip? (I dont know the 7z file format, maybe a new format has to be created in order to require no seeking, meaning the extension would have to be changed as well. (like gzip had to do with the zip format.) so maybe we shouldn't standardize on a p7zip command just yet...) [1] http://advancemame.sourceforge.net/comp-readme.html [2] http://www.morphix.org/debian/source/cloop_2.01-6.tar.gz Index: Makefile =================================================================== RCS file: /home/ncvs/ports/archivers/p7zip/Makefile,v retrieving revision 1.13 diff -u -r1.13 Makefile --- Makefile 15 Oct 2005 12:47:26 -0000 1.13 +++ Makefile 18 Oct 2005 18:55:50 -0000 @@ -7,6 +7,7 @@ PORTNAME= p7zip PORTVERSION= 4.29 +PORTREVISION= 1 CATEGORIES= archivers MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= p7zip @@ -65,6 +66,7 @@ .endfor ${INSTALL_SCRIPT} ${FILESDIR}/7z ${PREFIX}/bin ${LN} -sf 7z ${PREFIX}/bin/7za + ${INSTALL_SCRIPT} ${FILESDIR}/p7zip ${PREFIX}/bin .if !defined(WITHOUT_MODULES) .for f in Codecs Formats ${MKDIR} ${DLLDIR}/${f} Index: pkg-plist =================================================================== RCS file: /home/ncvs/ports/archivers/p7zip/pkg-plist,v retrieving revision 1.6 diff -u -r1.6 pkg-plist --- pkg-plist 15 Oct 2005 12:47:26 -0000 1.6 +++ pkg-plist 18 Oct 2005 18:56:38 -0000 @@ -1,5 +1,6 @@ @unexec /bin/rm -f %D/bin/7za bin/7z +bin/p7zip @exec /bin/ln -sf 7z %D/bin/7za %%MODULES%%libexec/p7zip/7z libexec/p7zip/7za Index: files/p7zip @@ -0,0 +1,74 @@ +#!/bin/sh +# gzip-like CLI wrapper for p7zip +set -e + +compress=true +file= + +usage () + { + echo "Usage: $0 [-d] [-h|--help] [file]" + exit 1 + } + +while [ "$#" != "0" ] ; do + case "$1" in + -d) compress=false ;; + -c) echo "$0: ignoring $1 option (not yet implemented)" ;; + -h|--help) usage ;; + *) + if [ "${file}" = "" ] ; then + file="$1" + else + usage + fi + ;; + esac + shift +done + +# make sure they're present, before we screw up +for i in mktemp 7z rm cat tty ; do + if ! which $i > /dev/null ; then + echo "$0: $i: command not found" + exit 1 + fi +done + +if [ "${file}" != "" ] ; then + if ${compress} ; then + 7z a ${file}.7z ${file} + rm ${file} + else + case ${file} in + *.7z) + 7z x ${file} + rm ${file} + ;; + *) + echo "$0: ${file}: unknown suffix -- ignored" + ;; + esac + fi + exit 0 +fi + +P7ZTMP=${TMP:-/tmp} +tmp=`mktemp ${P7ZTMP}/p7z.XXXXXXXX` +trap "rm -f ${tmp}" 0 + +if ${compress} ; then + if tty > /dev/null ; then + echo "$0: compressed data not written to a terminal." + echo "For help, type: $0 -h" + exit 1 + fi + rm -f ${tmp} + 7z a ${tmp} -si >/dev/null + cat ${tmp} +else + cat > ${tmp} + 7z x ${tmp} -so 2>/dev/null | cat +fi + +rm -f ${tmp}