First versions of the binaries and source file.
This commit is contained in:
parent
d2630d6e4f
commit
1dfda10ddc
11 changed files with 742 additions and 0 deletions
83
cdz
Executable file
83
cdz
Executable 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue