21 Commits

Author SHA1 Message Date
radikal 961b97375b 0.5r0 2020-09-30 02:12:22 +02:00
radikal f1cdd41bc7 Merge branch 'master' of https://gitea.hatthieves.es/cloud/lch into master 2020-09-30 02:08:14 +02:00
radikal 7c486ddcf9 man binary test 2020-09-30 02:07:36 +02:00
Gustavo Adolfo Mesa Roldán 43abad0f77 TODO 2020-09-30 01:45:05 +02:00
radikal 32b30edc2c changed /bin/bash to /usr/bin/env bash 2020-09-30 01:37:15 +02:00
Gustavo Adolfo Mesa Roldán 7c1fd864d7 TODO 2020-09-30 01:23:11 +02:00
Gustavo Adolfo Mesa Roldán 3a0dd2eed6 0.4r8 - Check Wget 2020-09-30 01:07:37 +02:00
radikal 5cd4ad4852 Merge branch 'master' of https://gitea.hatthieves.es/cloud/lch into master 2020-09-30 00:31:41 +02:00
radikal deb162759a minor fix 2020-09-30 00:31:14 +02:00
Gustavo Adolfo Mesa Roldán 80b5375347 0.4r6 - Text fixed 2020-09-30 00:06:01 +02:00
radikal 0f2bef10ad minor correction 2020-09-29 21:40:25 +02:00
radikal 11b9ab21c9 minor fixes 2020-09-29 20:35:16 +02:00
Gustavo Adolfo Mesa Roldán e4f1a6fa1a help fixed 2020-09-29 19:32:33 +02:00
Gustavo Adolfo Mesa Roldán 854aa81abd help fixed 2020-09-29 19:32:23 +02:00
Gustavo Adolfo Mesa Roldán 75ddb34ae0 0.4r6 - unzip instalation 2020-09-29 19:13:17 +02:00
Gustavo Adolfo Mesa Roldán 1590a437a2 0.4r6 - unzip instalation 2020-09-29 19:00:32 +02:00
radikal 1859382339 TODO updated 2020-09-29 18:30:43 +02:00
radikal 93afb48a1e ask for non-free software 2020-09-29 18:26:51 +02:00
radikal 92653b85d4 new revision 2020-09-29 17:39:33 +02:00
radikal 45c9a4185b uppercase control 2020-09-29 17:04:56 +02:00
Gustavo Adolfo Mesa Roldán 1c285fcf57 TODO 2020-09-29 02:13:36 +02:00
9 changed files with 113 additions and 104 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
###### Compress ###### Compress
``` ```
$ lch file.zip archive1/ [archive2/] [...] $ lch file.zip file1 [file2...]
``` ```
###### Decompress ###### Decompress
+1 -19
View File
@@ -1,19 +1 @@
# Formatos que faltan: https://kanban.hatthieves.es/b/xAbb5NsGwNsbpxfpY/lch
- RAR (hecho, falta testear)
# Al realizar los case, habría que controlar las mayúsculas y minúsculas en las extensiones. "lowercase"
# Estudiar la posibilidad de mostras las lista de extenciones usables en ese momento. Dependiendo de las dependecias instaladas en el sistema.
# Al instalar rar.
- Comprobar que wget este en el sistema.
- Preguntar si el usario quiere sotware privativo.
# Cambios en 7z:
- Ficheros para añadir como solo extracción:
ARJ, CAB, DMG, ISO, LZH, LZMA, RPM, SquashFS, VDI, VHD, VMDK, WIM, XAR, Z
- Comprobar qué dependencias son necesarias para esos formatos.
- ¿Ficheros que soporta?
AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, RPM, SquashFS, UDF, UEFI, VDI, VHD, VMDK, WIM, XAR and Z.
+14 -12
View File
@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
if [ "$UID" != "0" ]; then if [ "$UID" != "0" ]; then
echo " Only root can execute this script, sorry." echo " Only root can execute this script, sorry."
@@ -17,18 +17,20 @@ cp ./lib/* /usr/lib/lch
chmod 755 /usr/bin/lch chmod 755 /usr/bin/lch
echo " Copied lch in /usr/bin" echo " Copied lch in /usr/bin"
if [ -z "$MANPATH" ] && [ $(manpath 2> /dev/null) ];then if [ -x "$(command -v man)" ]; then
MANPATH=$(manpath) if [ -z "$MANPATH" ] && [ $(manpath 2> /dev/null) ];then
else MANPATH=$(manpath)
MANPATH="/usr/local/man" else
fi MANPATH="/usr/local/man"
fi
MANDIR=${MANPATH%%:*}/man1 MANDIR=${MANPATH%%:*}/man1
mkdir -p $MANDIR mkdir -p $MANDIR
cp lch.1 $MANDIR/lch.1 cp lch.1 $MANDIR/lch.1
gzip $MANDIR/lch.1 gzip $MANDIR/lch.1
chmod 644 $MANDIR/lch.1.gz chmod 644 $MANDIR/lch.1.gz
echo " Copied manpage in $MANDIR" echo " Copied manpage in $MANDIR"
fi
echo "" echo ""
echo "=============================" echo "============================="
echo " lch installed successfully." echo " lch installed successfully."
+5 -5
View File
@@ -1,5 +1,5 @@
#!/bin/bash #!/usr/bin/env bash
VERSION=0.4r3 VERSION=0.5r0
DEST=$1 DEST=$1
shift 1 shift 1
ORIG=$@ ORIG=$@
@@ -13,16 +13,16 @@ function help()
echo "Help:" echo "Help:"
echo "-----" echo "-----"
echo "" echo ""
echo "lch [-h] [-v] [-c] [-i] [FILE [FILE]]" echo "lch [-h] [-v] [-c] [-i] [FILE [FILE...]]"
echo "" echo ""
echo "Examples:" echo "Examples:"
echo "$ lch -h - This help" echo "$ lch -h - This help"
echo "$ lch -v - Print version" echo "$ lch -v - Print version"
echo "$ lch -c - Check compresion systems" echo "$ lch -c - Check compresion systems"
echo "$ lch -i - Install the compressors dependencies." echo "$ lch -i - Install the compressors dependencies"
echo "$ lch file.zip - Decompress" echo "$ lch file.zip - Decompress"
echo "$ lch file.zip /home/file - Compress" echo "$ lch file.zip /home/file - Compress"
echo "$ lch files.zip /flie1 /flie2 - Compress multiple" echo "$ lch files.zip file1 file2 - Compress multiple"
echo "" echo ""
echo "Supported extensions:" echo "Supported extensions:"
echo " rar, tar, tar.gz, tar.bz2, tar.xz, bz2, tgz, gz, zip, 7z" echo " rar, tar, tar.gz, tar.bz2, tar.xz, bz2, tgz, gz, zip, 7z"
+8 -8
View File
@@ -1,8 +1,8 @@
.TH LCH 1 "26 September 2020" .TH LCH 1 "29 September 2020"
.SH NAME .SH NAME
lch \- command\-line compressor and decompressor for humans lch \- command\-line compressor and decompressor for humans
.SH SYNOPSIS .SH SYNOPSIS
\fBlch\fP [filename [filename1] [filename2]...] \fBlch\fP [-h] [-v] [-c] [-i] [file [file] [file]...]
\fBlch\fP [\fIflags\fP] \fBlch\fP [\fIflags\fP]
.SH DESCRIPTION .SH DESCRIPTION
@@ -12,7 +12,7 @@ extension.
Supported extensions: Supported extensions:
tar, tar.gz, tar.bz2, tar.xz, bz2, tgz, gz, zip, 7z rar, tar, tar.gz, tar.bz2, tar.xz, bz2, tgz, gz, zip, 7z
.SH OPTIONS .SH OPTIONS
.TP .TP
@@ -32,17 +32,17 @@ Install compressors and dependencies.
.SH EXAMPLES .SH EXAMPLES
.TP .TP
\fBlch foobar.tar.gz\fR \fBlch file.tar.gz\fR
will decompress file foobar.tar.gz will decompress file.tar.gz
.TP .TP
\fBlch foobar.tar.gz foobar1/ foobar2/\fP \fBlch file.tar.gz file1 file2\fP
will compress foobar1/ and foobar2/ in foobar.tar.gz will compress file1 and file2 in file.tar.gz
.SH BUGS .SH BUGS
Report your bugs at <gore@hatthieves.es> Report your bugs at <gore@hatthieves.es>
.SH AUTHOR .SH AUTHOR
\fBlch\fP are by Gustavo Adolfo Mesa Roldan <gore@hackthieves.es> \fBlch\fP are by Gustavo Adolfo Mesa Roldan <gore@hackthieves.es>, radikal <radikal@disroot.org>.
This document is by radikal <radikal@disroot.org>. This document is by radikal <radikal@disroot.org>.
+37 -24
View File
@@ -1,11 +1,11 @@
#!/bin/bash #!/usr/bin/env bash
function check() function check()
{ {
local a=false local a=false
echo -e "Verification of compression systems:\n" echo -e "Verification of compression systems:\n"
echo -e "Systems\t\t\tStatus" echo -e "Systems\t\t\tStatus"
echo "----------------------------------" echo "----------------------------------"
for i in "rar" "unrar" "tar" "bzip2" "gzip" "zip" "7za" for i in "rar" "unrar" "tar" "bzip2" "gzip" "zip" "unzip" "7za"
do do
if ! [ -x "$(command -v $i)" ] if ! [ -x "$(command -v $i)" ]
then then
@@ -18,29 +18,34 @@ function check()
if $a if $a
then then
echo -e "\nIn order to use all the extensions install the packages: tar, bzip2, gzip, zip, 7za, rar, unrar" echo -e "\nIn order to use all the extensions install the packages: tar, bzip2, gzip, zip, unzip, 7za, rar, unrar"
fi fi
echo "" echo ""
exit 0 exit 0
} }
function rarInstall(){ function rarInstall(){
if [ -e "$(command -v wget)" ]
if [[ $(uname -m) -eq "x86_64" ]]
then then
RAR_URL="https://www.rarlab.com/rar/rarlinux-x64-5.9.1.tar.gz" if [[ $(uname -m) -eq "x86_64" ]]
RAR_FILE="rarlinux-x64-5.9.1.tar.gz" then
RAR_URL="https://www.rarlab.com/rar/rarlinux-x64-5.9.1.tar.gz"
RAR_FILE="rarlinux-x64-5.9.1.tar.gz"
else
RAR_URL="https://www.rarlab.com/rar/rarlinux-5.9.1.tar.gz"
RAR_FILE="rarlinux-5.9.1.tar.gz"
fi
wget $RAR_URL
tar -zxvf $RAR_FILE
cd rar
cp -v rar unrar /usr/local/bin/
cd ..
rm -r rar $RAR_FILE
echo "rar/unrar installed."
else else
RAR_URL="https://www.rarlab.com/rar/rarlinux-5.9.1.tar.gz" echo -e "\n\e[91m[Error]\e[0m - Wget is not installed, so rar could not be installed.\nPlease install wget.\n"
RAR_FILE="rarlinux-5.9.1.tar.gz" read -p "Press [ENTER] to continue installing or [CTRL+C] to exit."
fi fi
wget $RAR_URL
tar -zxvf $RAR_FILE
cd rar
cp -v rar unrar /usr/local/bin/
cd ..
rm -r rar $RAR_FILE
echo "rar/unrar installed."
} }
function install() function install()
@@ -49,7 +54,7 @@ function install()
if [ "$UID" != "0" ]; then if [ "$UID" != "0" ]; then
echo " Only root can execute this script, sorry." echo " Only root can execute this script, sorry."
echo " Try 'sudo $@'" echo " Try 'sudo $0 $@'"
exit 0 exit 0
fi fi
@@ -57,13 +62,21 @@ function install()
then then
echo "rar installed." echo "rar installed."
else else
rarInstall read -p "Do you want to install non-free software? (rar, unrar) [Y/N]: " PRIVSOFT
case ${PRIVSOFT} in
y|Y)
rarInstall;;
n|N)
echo -e "\nOnly will install free software.\n";;
*)
echo -e "Options: 'Y' or 'N': ";;
esac
fi fi
if [ -x "$(command -v apt)" ] if [ -x "$(command -v apt)" ]
then then
echo -e "APT system detected\n" echo -e "APT system detected\n"
apt install -y tar bzip2 gzip zip p7zip-full 1> /dev/null apt install -y tar bzip2 gzip zip unzip p7zip-full 1> /dev/null
elif [ -n "$(grep "centos" /etc/*-release)" ] elif [ -n "$(grep "centos" /etc/*-release)" ]
then then
echo -e "CentOS system detected\n" echo -e "CentOS system detected\n"
@@ -71,23 +84,23 @@ function install()
rpm -U --quiet http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm 1> /dev/null rpm -U --quiet http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm 1> /dev/null
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 1> /dev/null rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 1> /dev/null
yum repolist 1> /dev/null yum repolist 1> /dev/null
yum install -y -q tar bzip2 gzip zip p7zip 1> /dev/null yum install -y -q tar bzip2 gzip zip unzip p7zip 1> /dev/null
elif [ -x "$(command -v dnf)" ] elif [ -x "$(command -v dnf)" ]
then then
echo -e "DNF system detected\n" echo -e "DNF system detected\n"
dnf install -y -q tar bzip2 gzip zip p7zip 1> /dev/null dnf install -y -q tar bzip2 gzip zip unzip p7zip 1> /dev/null
elif [ -x "$(command -v yum)" ] elif [ -x "$(command -v yum)" ]
then then
echo -e "Yum system detected\n" echo -e "Yum system detected\n"
yum install -y -q tar bzip2 gzip zip p7zip 1> /dev/null yum install -y -q tar bzip2 gzip zip unzip p7zip 1> /dev/null
elif [ -x "$(command -v pacman)" ] elif [ -x "$(command -v pacman)" ]
then then
echo -e "Pacman system detected\n" echo -e "Pacman system detected\n"
pacman -Sqy --noconfirm tar bzip2 gzip zip p7zip 1> /dev/null pacman -Sqy --noconfirm tar bzip2 gzip zip unzip p7zip 1> /dev/null
elif [ -x "$(command -v zypper)" ] elif [ -x "$(command -v zypper)" ]
then then
echo -e "Zypper system detected\n" echo -e "Zypper system detected\n"
zypper install -y tar bzip2 gzip zip p7zip-full 1> /dev/null zypper install -y tar bzip2 gzip zip unzip p7zip-full 1> /dev/null
else else
echo -e "System installer not detected\n" echo -e "System installer not detected\n"
fi fi
+16 -11
View File
@@ -1,33 +1,38 @@
#!/bin/bash #!/usr/bin/env bash
function lowercase()
{
echo "$DEST" | tr 'A-Z' 'a-z'
}
function compressor() function compressor()
{ {
case $1 in case $(lowercase) in
*.tar) *.tar)
tar -cvf $1 $2 tar -cvf $DEST $ORIG
;; ;;
*.tar.gz | *.tgz) *.tar.gz | *.tgz)
tar -czvf $1 $2 tar -czvf $DEST $ORIG
;; ;;
*.tar.bz2 | *.tbz | *.tbz2 | *.tb2) *.tar.bz2 | *.tbz | *.tbz2 | *.tb2)
tar -c $2 | bzip2 > $1 tar -c $ORIG | bzip2 > $DEST
;; ;;
*.tar.xz | *.txz) *.tar.xz | *.txz)
tar -cJf $1 $2 tar -cJf $DEST $ORIG
;; ;;
*.bz2) *.bz2)
bzip2 -c $2 > $1 bzip2 -c $ORIG > $DEST
;; ;;
*.gz) *.gz)
gzip -c $2 > $1 gzip -c $ORIG > $DEST
;; ;;
*.zip) *.zip)
zip -r $1 $2 zip -r $DEST $ORIG
;; ;;
*.7z) *.7z)
7za a $1 $2 7za a $DEST $ORIG
;; ;;
*.rar) *.rar)
rar a $1 $2 rar a $DEST $ORIG
;; ;;
*) *)
echo "Extension not found." echo "Extension not found."
+15 -11
View File
@@ -1,33 +1,37 @@
#!/bin/bash #!/usr/bin/env bash
function lowercase()
{
echo "$DEST" | tr 'A-Z' 'a-z'
}
function decompressor() function decompressor()
{ {
case $1 in case $(lowercase) in
*.tar) *.tar)
tar -xvf $1 tar -xvf $DEST
;; ;;
*.tar.gz | *.tgz) *.tar.gz | *.tgz)
tar -xzvf $1 tar -xzvf $DEST
;; ;;
*.tar.bz2 | *.tbz | *.tbz2 | *.tb2) *.tar.bz2 | *.tbz | *.tbz2 | *.tb2)
tar xjf $1 tar xjf $DEST
;; ;;
*.tar.xz | *.txz) *.tar.xz | *.txz)
tar -xf $1 tar -xf $DEST
;; ;;
*.bz2) *.bz2)
bzip2 -d $1 bzip2 -d $DEST
;; ;;
*.gz) *.gz)
gzip -d $1 gzip -d $DEST
;; ;;
*.zip) *.zip)
unzip $1 unzip $DEST
;; ;;
*.7z) *.7z)
7za e $1 7za e $DEST
;; ;;
*.rar) *.rar)
unrar x $1 unrar x $DEST
;; ;;
*) *)
echo "Extension not found." echo "Extension not found."
+16 -13
View File
@@ -1,4 +1,4 @@
#!/bin/bash #!/usr/bin/env bash
if [ "$UID" != "0" ]; then if [ "$UID" != "0" ]; then
echo " Only root can execute this script, sorry." echo " Only root can execute this script, sorry."
@@ -16,21 +16,24 @@ if [[ -d "/usr/lib/lch" ]]; then
rm -rf "/usr/lib/lch" rm -rf "/usr/lib/lch"
fi fi
# Si nulo manpath # Si existe man
if [ -z "$MANPATH" ]; then if [ -x "$(command -v man)" ]; then
MANPATH=$(manpath) # Si nulo manpath
fi if [ -z "$MANPATH" ]; then
MANPATH=$(manpath)
fi
MANDIR=${MANPATH%%:*}/man1 MANDIR=${MANPATH%%:*}/man1
# Si man lch.1 # Si man lch.1
if [[ -f "$MANDIR/lch.1" ]]; then if [[ -f "$MANDIR/lch.1" ]]; then
rm "$MANDIR/lch.1" rm "$MANDIR/lch.1"
fi fi
# Si man lch.1.gz # Si man lch.1.gz
if [[ -f "$MANDIR/lch.1.gz" ]]; then if [[ -f "$MANDIR/lch.1.gz" ]]; then
rm "$MANDIR/lch.1.gz" rm "$MANDIR/lch.1.gz"
fi
fi fi
echo "==============================" echo "=============================="