diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5236e1e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*~
+
diff --git a/Makefile.in b/Makefile.in
index 2384f4a..040ddf3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -101,8 +101,10 @@ zpipe.o: zpipe.cpp
install: all
mkdir -p $(DESTDIR)${INSTALL_BIN}
${INSTALLCMD} -m 755 lrzip $(DESTDIR)${INSTALL_BIN}
- ( cd $(DESTDIR)${INSTALL_BIN} && ${LN_S} -f lrzip lrunzip )
${INSTALLCMD} -m 755 lrztar $(DESTDIR)${INSTALL_BIN}
+ ${LN_S} -f $(DESTDIR)${INSTALL_BIN}/lrzip $(DESTDIR)${INSTALL_BIN}/lrunzip
+ ${LN_S} -f $(DESTDIR)${INSTALL_BIN}/lrztar $(DESTDIR)${INSTALL_BIN}/lrzuntar
+ chmod 755 $(DESTDIR)${INSTALL_BIN}/lrzuntar
mkdir -p $(DESTDIR)${INSTALL_MAN1}
${INSTALLCMD} -m 644 $(MAN1FILES) $(DESTDIR)${INSTALL_MAN1}
mkdir -p $(DESTDIR)${INSTALL_MAN5}
@@ -111,7 +113,11 @@ install: all
${INSTALLCMD} -m 644 $(DOCFILES) $(DESTDIR)${INSTALL_DOC}
mkdir -p $(DESTDIR)${INSTALL_DOC_LZMA}
${INSTALLCMD} -m 644 $(DOCFILES_LZMA) $(DESTDIR)${INSTALL_DOC_LZMA}
-
+uninstall:
+ rm -rf $(DESTDIR)${INSTALL_BIN}/{lrztar,lrzuntar,lrunzip,lrzip}
+ rm -rf $(DESTDIR)${INSTALL_DOC}
+ rm -rf $(DESTDIR)${INSTALL_MAN1}/{lrunzip.1,lrzip.1,lrztar.1}
+ rm -rf $(DESTDIR)${INSTALL_MAN5}/lrzip.conf.5
lrzip: $(OBJS)
$(CXX) $(LDFLAGS) -o lrzip $(OBJS) $(LIBS)
diff --git a/lrztar b/lrztar
index 2d2870f..dcc1c1b 100755
--- a/lrztar
+++ b/lrztar
@@ -1,17 +1,30 @@
#!/bin/bash
-# A basic skeleton for making a new lrzip tar wrapper place messages etc
-# where you think you want them, it kind of self - documents itself.
-# For the time being, lrzip does not like pipes.
+# Copyright (C) George Makrydakis 2009, 2010
+# Copyright (C) Con Kolivas 2010
-# Public domain with no warranties or suitability whatsoever etc.
-# G.M.
+# A bash wrapper for Con Kolivas' excellent lrzip utility. For the time
+# being, lrzip does not like pipes, so we had to do this. It is kind of
+# self - documenting, spawned out of a test tube bash shell script.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
function lrztar_local() {
local p="${@:1:$(($#-1))}" s="${!#}" tname= fname= \
v_w=0 v_O=0 v_S=0 v_D=0 v_P=0 v_q=0 v_L=0 \
v_n=0 v_l=0 v_b=0 v_g=0 v_z=0 v_M=0 v_T=0 \
- v_N=0 v_v=0 v_f=0 v_d=0 v_h=0 x=
+ v_N=0 v_v=0 v_f=0 v_d=0 v_h=0 x= i=
OPTERR=0
trap '[[ -z $tname ]] || rm -rf "$tname" &> /dev/null' 1 2 3 15
which tar &> /dev/null || { printf "lrztar: no tar in your path\n"; return 1; }
@@ -20,23 +33,33 @@ function lrztar_local() {
[[ $x == [otV] ]] || ((v_$x=1)) &> /dev/null \
|| { printf "lrztar: invalid option for lrztar %s\n" "$x"; return 1; }
done
+ [[ $(basename "$0") == lrzuntar ]] \
+ && { v_d=1; p="-d $p"; }
{ ! (($#)) || ((v_h)); } && {
printf "lrztar wrapper for compressing/decompressing whole directories with lrzip.\n"
printf "usage: lrztar [lrzip options] will compress directory to directory.tar.lrz\n"
printf "lrztar -d [lrzip options] will extract directory from directory.tar.lrz\n"
- printf "lrzip -h will list lrzip options\n"
+ printf "lrzuntar [lrzip options] will extract directory from directory.tar.lrz\n"
+ printf "lrz[un]tar -h will display this help message\n"
+ printf "lrzip -h will display lrzip options\n"
return
}
((v_d)) && {
- fname="$(basename "$s")"; tname="${fname%.lrz}"
+ fname="$(basename "$s")"; tname="${fname%.lrz}";
! ((v_f)) && [[ -e ${tname%.tar} ]] && {
printf "lrztar: ${tname%.tar} already present, aborting\n"
return 1
}
- lrzip $p "$fname" && tar xf "$tname"
+ [[ ${s%/*} != $s ]] && i="${s%/*}/" || i="./"
+ tname="$i$tname"
+ lrzip $p "$i$fname" && tar xf "$tname"
x=$?
} || {
- tname="$(basename "$s").tar"
+ fname="$(basename "$s")"; tname="$fname.tar"
+ [[ $fname == *.lrz ]] && {
+ printf "lrztar: $fname is already a .lrz file, aborting\n"
+ return 1
+ }
tar cf "$tname" "$s" && lrzip $p "$tname"
x=$?
}