initial dotfiles
This commit is contained in:
commit
45e5fe53d2
370 changed files with 25449 additions and 0 deletions
68
.config/yazi/scripts/extract-archive.sh
Executable file
68
.config/yazi/scripts/extract-archive.sh
Executable file
|
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Extract archive script for Yazi
|
||||
# Supports: .zip, .tar.gz, .tgz, .tar.bz2, .tbz2, .tar.xz, .txz, .tar, .rar, .7z
|
||||
|
||||
archive="$1"
|
||||
|
||||
# Check if file exists and is a regular file
|
||||
if [ ! -f "$archive" ]; then
|
||||
echo "Error: Not a valid file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the base name without extension for default extraction directory
|
||||
basename="${archive%.*}"
|
||||
# Handle double extensions like .tar.gz
|
||||
if [[ "$archive" =~ \.(tar\.gz|tar\.bz2|tar\.xz)$ ]]; then
|
||||
basename="${archive%.*.*}"
|
||||
fi
|
||||
|
||||
# Prompt for extraction directory
|
||||
printf "Extract to directory (default: %s): " "$basename"
|
||||
read -r extract_dir
|
||||
|
||||
# Use default if empty
|
||||
if [ -z "$extract_dir" ]; then
|
||||
extract_dir="$basename"
|
||||
fi
|
||||
|
||||
# Create extraction directory if it doesn't exist
|
||||
mkdir -p "$extract_dir"
|
||||
|
||||
# Extract based on file extension
|
||||
case "$archive" in
|
||||
*.zip)
|
||||
unzip -q "$archive" -d "$extract_dir"
|
||||
;;
|
||||
*.tar.gz | *.tgz)
|
||||
tar -xzf "$archive" -C "$extract_dir"
|
||||
;;
|
||||
*.tar.bz2 | *.tbz2)
|
||||
tar -xjf "$archive" -C "$extract_dir"
|
||||
;;
|
||||
*.tar.xz | *.txz)
|
||||
tar -xJf "$archive" -C "$extract_dir"
|
||||
;;
|
||||
*.tar)
|
||||
tar -xf "$archive" -C "$extract_dir"
|
||||
;;
|
||||
*.rar)
|
||||
unrar x "$archive" "$extract_dir/"
|
||||
;;
|
||||
*.7z)
|
||||
7z x "$archive" -o"$extract_dir"
|
||||
;;
|
||||
*)
|
||||
echo "Error: Unsupported archive format"
|
||||
rmdir "$extract_dir" 2>/dev/null
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Successfully extracted to: $extract_dir"
|
||||
else
|
||||
echo "Error: Extraction failed"
|
||||
exit 1
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue