First versions of the binaries and source file.

This commit is contained in:
Lea 2025-07-04 16:07:49 +02:00
parent d2630d6e4f
commit 1dfda10ddc
11 changed files with 742 additions and 0 deletions

83
cdz Executable file
View file

@ -0,0 +1,83 @@
#!/bin/bash
if [[ $DAISY_INTERNAL -ne 1 ]];
then
DAISY_INTERNAL=1 source $DAISY_SOURCE_FILE
fi
target=$1
# Check if file exists
if [[ -z "$target" ]];
then
echo "No target specified."
exit 1
fi
if ! test -f "$target";
then
echo "File not found: \"$target\""
exit 2
fi
file "$target" 1>/dev/null
exitcode=$?
report=$(file "$target")
# Check for archive type, supported types are zip/tar/rar
comm1=(:)
comm2=(echo "Unsupported archive type$add: \"$target\"")
comm3=(:)
echo $report | grep "tar archive" 1>/dev/null
istar=$?
echo $report | grep "Zip archive" 1>/dev/null
iszip=$?
echo $report | grep "RAR archive" 1>/dev/null
israr=$?
# TAR archives come in many forms, if none of our tests say it's tar
# ...but it looks like tar and barks like tar, let's take the shot.
# Seems to work fairly well for the record.
RES=$(echo "$target" | grep ".tar")
if [[ RES != "" ]];
then
istar=0
fi
# Now we set the right command
if (( istar == 0 )); then
comm2=(tar xvf "$target" -C)
elif (( iszip == 0 )); then
which unzip 1>/dev/null
exitcode=$?
if (( exitcode == 0 )); then
comm2=(unzip -q "$target" -d)
else
comm1=(echo "The utility 'unzip' is missing, please install it")
comm3=(exit 1)
fi
elif (( israr == 0 )); then
which unrar 1>/dev/null
exitcode=$?
if (( exitcode == 0 )); then
comm2=(unrar -i nul "$target")
else
comm1=(echo "The utility 'unrar' is missing, please install it")
comm3=(exit 1)
fi
fi
# Create the temp dir, usually
dir=$(mktemp -d /tmp/extracted.XXXXXXXX)
# And the rest of the commands
"${comm1[@]}"
"${comm2[@]}" $dir
"${comm3[@]}"
cd $dir
echo ""
echo "Type 'exit' to exit the extracted archive's folder and auto-delete it"
eval $SHELL
rm -rf $dir