diff --git a/lch b/lch index d5c9dac..7b8f9ba 100755 --- a/lch +++ b/lch @@ -1,5 +1,5 @@ #!/usr/bin/env bash -VERSION=0.5r2 +VERSION=0.5r4 DEST=$1 shift 1 ORIG=$@ @@ -9,7 +9,6 @@ if [[ -e /usr/lib/lch/compressor.sh ]]; then . /usr/lib/lch/compressor.sh; else if [[ -e /usr/lib/lch/decompressor.sh ]]; then . /usr/lib/lch/decompressor.sh; else . ./lib/decompressor.sh; fi if [[ -e /usr/lib/lch/installer.sh ]]; then . /usr/lib/lch/installer.sh; else . ./lib/installer.sh; fi - if [ "$DEST" = "--version" ] || [ "$DEST" = "-v" ] then echo "Linux Compression Humanized $VERSION" diff --git a/lch.1 b/lch.1 index 1c7eb96..d39da4a 100644 --- a/lch.1 +++ b/lch.1 @@ -1,4 +1,4 @@ -.TH LCH 1 "29 September 2020" +.TH LCH 1 "03 October 2020" .SH NAME lch \- command\-line compressor and decompressor for humans .SH SYNOPSIS @@ -10,9 +10,14 @@ lch \- command\-line compressor and decompressor for humans simplicity in mind. Automatically select the compression format by file extension. - Supported extensions: - - rar, tar, tar.gz, tar.bz2, tar.xz, bz2, tgz, gz, zip, 7z + Packing/unpacking supported extensions: + 7z, bz2, gz, rar, tar, tar.bz2, tar.gz, tar.xz, tgz, zip + + Unpacking only supported extensions: + arj, cab, dmg, iso, lzh, lzma, rpm, SquashFS + + Unpacking only in beta extensions: + cdi, chd, vmdk, win, xar, z .SH OPTIONS .TP diff --git a/lib/compressor.sh b/lib/compressor.sh index f19e85e..362b32e 100644 --- a/lib/compressor.sh +++ b/lib/compressor.sh @@ -4,31 +4,76 @@ function compressor() { case $(lowercase) in *.tar) - tar -cvf $DEST $ORIG + if [ -x "$(command -v tar)" ] + then + tar -cvf $DEST $ORIG + else + error_not_install "tar" + fi ;; *.tar.gz | *.tgz) - tar -czvf $DEST $ORIG + if [ -x "$(command -v tar)" ] + then + tar -czvf $DEST $ORIG + else + error_not_install "tar" + fi ;; *.tar.bz2 | *.tbz | *.tbz2 | *.tb2) - tar -c $ORIG | bzip2 > $DEST + if [ -x "$(command -v tar)" ] + then + tar -c $ORIG | bzip2 > $DEST + else + error_not_install "tar" + fi ;; *.tar.xz | *.txz) - tar -cJf $DEST $ORIG + if [ -x "$(command -v tar)" ] + then + tar -cJf $DEST $ORIG + else + error_not_install "tar" + fi ;; *.bz2) - bzip2 -c $ORIG > $DEST + if [ -x "$(command -v bzip2)" ] + then + bzip2 -c $ORIG > $DEST + else + error_not_install "bzip2" + fi ;; *.gz) - gzip -c $ORIG > $DEST + if [ -x "$(command -v gzip)" ] + then + gzip -c $ORIG > $DEST + else + error_not_install "gzip" + fi ;; *.zip) - zip -r $DEST $ORIG + if [ -x "$(command -v zip)" ] + then + zip -r $DEST $ORIG + else + error_not_install "zip" + fi ;; *.7z) - 7za a $DEST $ORIG + if [ -x "$(command -v 7z)" ] + then + 7z a $DEST $ORIG + else + error_not_install "7z" + fi ;; *.rar) - rar a $DEST $ORIG + if [ -x "$(command -v rar)" ] + then + rar a $DEST $ORIG + else + error_not_install "rar" + fi ;; *) echo "Extension not found." diff --git a/lib/decompressor.sh b/lib/decompressor.sh index d308812..0550807 100644 --- a/lib/decompressor.sh +++ b/lib/decompressor.sh @@ -4,31 +4,76 @@ function decompressor() { case $(lowercase) in *.tar) - tar -xvf $DEST + if [ -x "$(command -v tar)" ] + then + tar -xvf $DEST + else + error_not_install "tar" + fi ;; *.tar.gz | *.tgz) - tar -xzvf $DEST + if [ -x "$(command -v tar)" ] + then + tar -xzvf $DEST + else + error_not_install "tar" + fi ;; *.tar.bz2 | *.tbz | *.tbz2 | *.tb2) - tar xjf $DEST + if [ -x "$(command -v tar)" ] + then + tar xjf $DEST + else + error_not_install "tar" + fi ;; *.tar.xz | *.txz) - tar -xf $DEST + if [ -x "$(command -v tar)" ] + then + tar -xf $DEST + else + error_not_install "tar" + fi ;; *.bz2) - bzip2 -d $DEST + if [ -x "$(command -v bzip2)" ] + then + bzip2 -d $DEST + else + error_not_install "bzip2" + fi ;; *.gz) - gzip -d $DEST + if [ -x "$(command -v gzip)" ] + then + gzip -d $DEST + else + error_not_install "gzip" + fi ;; *.zip) - unzip $DEST + if [ -x "$(command -v unzip)" ] + then + unzip $DEST + else + error_not_install "unzip" + fi ;; - *.7z) - 7za e $DEST + *.7z | *.arj | *.cab | *.cdi | *.chd | *.dmg | *.iso | *.lzh | *.lzma | *.rpm | *.squashfs | *.vmdk | *.win | *.xar | *.z) + if [ -x "$(command -v 7z)" ] + then + 7z e -y $DEST + else + error_not_install "7z" + fi ;; *.rar) - unrar x $DEST + if [ -x "$(command -v unrar)" ] + then + unrar x $DEST + else + error_not_install "unrar" + fi ;; *) echo "Extension not found." diff --git a/lib/resources.sh b/lib/resources.sh index cdf27eb..31a5982 100644 --- a/lib/resources.sh +++ b/lib/resources.sh @@ -16,8 +16,14 @@ function help() echo "$ lch file.zip /home/file - Compress" echo "$ lch files.zip file1 file2 - Compress multiple" echo "" - echo "Supported extensions:" - echo " rar, tar, tar.gz, tar.bz2, tar.xz, bz2, tgz, gz, zip, 7z" + echo "Packing/unpacking supported extensions:" + echo " 7z, bz2, gz, rar, tar, tar.bz2, tar.gz, tar.xz, tgz, zip" + echo "" + echo "Unpacking only supported extensions:" + echo " arj, cab, dmg, iso, lzh, lzma, rpm, SquashFS" + echo "" + echo "Unpacking only in beta extensions:" + echo " cdi, chd, vmdk, win, xar, z" echo "" echo "Run 'man lch' for more info." echo "" @@ -50,4 +56,9 @@ function check() function lowercase() { echo "$DEST" | tr 'A-Z' 'a-z' +} + +function error_not_install() +{ + echo -e "$@ \e[91mis not Installed\e[0m, use 'lch -i' to install and 'lch -c' to check." } \ No newline at end of file