iankelling.org
/
git
/
small-misc-bash
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update README for gitorious move
[small-misc-bash]
/
ex-function
diff --git
a/ex-function
b/ex-function
index 91733c3284dd0b7dac2e9177338cc72d3591beb0..79800235001ce49d97011cfa9a5bf06528cf8bbe 100644
(file)
--- a/
ex-function
+++ b/
ex-function
@@
-15,11
+15,13
@@
ex() {
local help="Usage: ex [--help] FILE...
ex() {
local help="Usage: ex [--help] FILE...
-Extract each FILE according to its extension."
+Extract each FILE according to its extension.
+7z bz2 deb gz iso rar rpm tar xz zip & variations.
+See source for exact file extensions."
if [[ $1 == --help ]]; then
echo "$help"
fi
if [[ $1 == --help ]]; then
echo "$help"
fi
- local x
+ local x
super
for x in "$@"; do
case "$x" in
*.tar.bz2 | *.tbz2 ) tar xvjf "$x" ;;
for x in "$@"; do
case "$x" in
*.tar.bz2 | *.tbz2 ) tar xvjf "$x" ;;
@@
-34,13
+36,20
@@
Extract each FILE according to its extension."
*.rpm ) rpm2cpio "$x" | cpio --extract --make-directories --verbose ;;
*.tar.xz ) tar Jxvf "$x" ;;
*.iso )
*.rpm ) rpm2cpio "$x" | cpio --extract --make-directories --verbose ;;
*.tar.xz ) tar Jxvf "$x" ;;
*.iso )
+ if [[ $EUID != 0 ]]; then
+ if [[ $(sudo -v) == Sorry* ]]; then
+ echo error: need superuser priveledge for iso file
+ return 1
+ fi
+ super=sudo
+ fi
local temp_dir=$(mktemp -d)
losetup -f
local temp_dir=$(mktemp -d)
losetup -f
-
s
mount -o loop "$x" "$temp_dir"
+
$super
mount -o loop "$x" "$temp_dir"
local dir="${x%%.iso}"
mkdir "$dir"
cp -av "$temp_dir"/* "$dir"
local dir="${x%%.iso}"
mkdir "$dir"
cp -av "$temp_dir"/* "$dir"
-
s
umount "$temp_dir"
+
$super
umount "$temp_dir"
;;
*.r[0-9][0-9]|*.rar ) unrar x "$x" ;;
*) echo "I don't kno how to extract $x";;
;;
*.r[0-9][0-9]|*.rar ) unrar x "$x" ;;
*) echo "I don't kno how to extract $x";;