@Musher0: Thanks for your continuous support, appreciated.
___________
@MochiMoppel: Ok, it's on my TODO list, however it may take a while as I wanted to take a bit longer break before releasing next version.
Here's a preview, though:
Code: Select all
--- old/uextract 2016-03-11 12:38:11.810579283 +0100
+++ new/uextract 2016-03-11 12:38:16.837246168 +0100
@@ -1204,7 +1204,7 @@
#################################### START ####################################
-CUSTOMDIR="$(pwd)"
+CUSTOMDIR_FLAG=false
MODE=extract
BADOPT=false
unset FILESSTACK
@@ -1214,8 +1214,8 @@
while (($#)); do
case "$1" in
- -o|--output) CUSTOMDIR="$2"; shift; shift ;; # 'shift 2' hangs if only one arg left
- --output=*) CUSTOMDIR="${1#*=}"; shift ;;
+ -o|--output) CUSTOMDIR="$2"; CUSTOMDIR_FLAG=true; shift; shift ;; # 'shift 2' hangs if only one arg left
+ --output=*) CUSTOMDIR="${1#*=}"; CUSTOMDIR_FLAG=true; shift ;;
-l|--list) MODE=list; shift ;;
-n|--no-colors) unset REDCOL BLUECOL GREENCOL YELLOWCOL UNDERLINE; shift ;;
-b|--backends) EXTRAOPT=backends; shift ;;
@@ -1228,7 +1228,6 @@
done
echo -e "\n${UNDERLINE}${APPNAME} by SFR'$(head -n 6 "$0" | grep -Eo "[0-9]+-[0-9]+"); GNU GPL v2 applies${OFFCOL}"
-
[ $(id -u) -ne 0 ] && { echo -e "\n${YELLOWCOL}$(gettext 'WARNING'): ${OFFCOL}$(gettext 'Some actions (like mounting ISO/disk images) require root privileges, so you may need to execute this script as root.')"; sleep 0.5; }
[ "$BADOPT" = "true" ] && { echo -e "\n${REDCOL}$(gettext 'ERROR:') ${OFFCOL}$(gettext 'Unknown option:') ${1}\n"; exit 1; }
@@ -1300,6 +1299,7 @@
[ ! -f "$ARCHPATH" ] && { echo -e "${YELLOWCOL}$(gettext 'WARNING:') ${OFFCOL}$(gettext "File does not exist or it's a device file; skipping...")"; ((SKIPCNT++)); SKIPFILES[$SKIPCNT]="${ARCHPATH:-${ARCHPATH_ORG}}"; shift; continue; }
mkdir -p "$WORKDIR" || { echo -e "\n${REDCOL}$(gettext 'ERROR:') ${OFFCOL}$(gettext 'Cannot create temporary directory! Aborting...')\n"; exit 1; }
+ [ "$CUSTOMDIR_FLAG" = "true" ] || CUSTOMDIR="${ARCHPATH%/*}"
func_uextract
RET=$?
cd "$OLDDIR"
Just note that if you do:
Code: Select all
uextract /path/to/symlink_to_file_in_another_location
the file will be extracted in that another location, not where symlink is, because UExtract always operates on full, real paths to files.
RE: Xdialog
Well, it still shows the current selection ("Selection: /") at the very bottom of the window.
Also, as you can see, fselect, too, doesn't show currently highlighted folder as "selection" nor put it into edit field, which gets filled only with a filename selected in right pane.
I suspect it just might have changed at some point and IMHO now it's more logical and consistent.
___________
@Smithy: UExtract is a wrapper script for many external tools and 7z is just one them, so bundling 7z only would be unfair to the rest.
Well, it crossed my mind to bundle UExtract along with _all_ tools that it supports, but it would be an awful mix of binaries with different/incompatibile licences, e.g. poweriso is free, but proprietary as well as unace, which comes with the following licence:
Linux unace is provided free, "as-is". You may freely copy the program.
Distribution is permitted within this original package only.
Anyway, you can always copy p7zip (and whatever tools you might need) to
usr/local/apps/UExtract/resources in unpacked UExtract package and create PET/SFS for your own use.
In fact, I keep (I need to, in order to develop this app) all the missing binaries there (see screenshot).
Btw, in case of p7zip you need to:
1. Copy
/usr/local/lib/p7zip/ (or wherever the
p7zip directory is) to 'resources' dir.
2. Create the following wrapper (and name it just
7z), also in 'resources' dir:
Code: Select all
#!/bin/sh
MYPATH="$(dirname "$(readlink -f "$0")")"
"${MYPATH}/p7zip/7z" "$@"
Greetings!