summaryrefslogtreecommitdiff
path: root/irfanview/irfanview
diff options
context:
space:
mode:
Diffstat (limited to 'irfanview/irfanview')
-rwxr-xr-xirfanview/irfanview103
1 files changed, 103 insertions, 0 deletions
diff --git a/irfanview/irfanview b/irfanview/irfanview
new file mode 100755
index 0000000..bb2af33
--- /dev/null
+++ b/irfanview/irfanview
@@ -0,0 +1,103 @@
+#!/bin/sh
+# File: /usr/bin/irfanview
+# Author: bgstack15@gmail.com
+# Startdate: 2016-01-29
+# Title: Wrapper script for passing files to Irfanview
+# Purpose: Converts file paths to a wine format and also handles compressed files
+# History: 2016-01-29 Initial quick script written. It used a bunch of sed commands to transform paths to a wine format.
+# Usage: irfan /path/to/image /another/image/file
+# Reference:
+# Ideas for zip expansion and winepath https://github.com/Zykr/IrfanViewLinux/blob/master/irfanview
+# Improve:
+
+IV_DEFAULT_FILE=/etc/sysconfig/irfanview
+# prepend IV_ to variables from defaults file and apply them
+if test -r "${IV_DEFAULT_FILE}" ;
+then
+ IV_tmpfile="$( mktemp )"
+ sed -r -e 's/^\s*(.*=.*)/IV_\1/;' < "${IV_DEFAULT_FILE}" > "${IV_tmpfile}"
+ source "${IV_tmpfile}"
+ rm -f "${IV_tmpfile}"
+fi
+
+# load variables
+test -z "${IV_WINEPREFIX}" && export IV_WINEPREFIX="$HOME/.wine"
+test -n "${IV_WINEPREFIX}" && export WINEPREFIX="${IV_WINEPREFIX}" || export WINEPREFIX=$HOME/.wine
+test -z "${IV_DEVTTY}" && export IV_DEVTTY=/dev/null
+test -z "${IV_EXEC_NAME}" && export IV_EXEC_NAME="i_view32.exe"
+test -z "${IV_EXEC_PATH}" && export IV_EXEC_PATH="/usr/share/irfanview/i_view32.exe"
+
+IV_VERSION="2018-09-02a"
+
+# Define functions
+expandword() {
+ # call: expandword "${word}"
+ # if file, add it
+ # if directory, expand it
+ # if tarball, extract it and operate on the directory like normal
+ local _word="$( echo "${@}" | sed -e 'sF\/\/F\/Fg;' )"
+ if test -d "${_word}";
+ then
+ # loop through all files in the directory
+ for _newword in "${_word}"/*;
+ do
+ expandword "${_newword}";
+ done
+ elif test -f "${_word}";
+ then
+ # file exists so check if tarball
+ case "${_word}" in
+ *.tgz|*.tar.gz)
+ # extract it and expand the temporary directory
+ _tmpdir="$( mktemp -d )"; alltempdirs="${alltempdirs} ${_tmpdir}"
+ echo "tmpdir ${_tmpdir}" 1>${IV_DEVTTY}
+ tar -zx -C "${_tmpdir}" -f "${_word}" 1>${IV_DEVTTY} 2>&1
+ expandword "${_tmpdir}"
+ ;;
+ *.zip)
+ _tmpdir="$( mktemp -d )"; alltempdirs="${alltempdirs} ${_tmpdir}"
+ echo "tmpdir ${_tmpdir}" 1>${IV_DEVTTY}
+ echo "7za e -w${_tmpdir} ${_word}" 1>${IV_DEVTTY} 2>&1
+ ( cd "${_tmpdir}"; 7za e "${_word}" 1>${IV_DEVTTY} 2>&1; )
+ expandword "${_tmpdir}"
+ ;;
+ *)
+ # assume it is readable and add it to list of files to open
+ echo "File ${_word}" 1>${IV_DEVTTY}
+ thisfile="$( getwinepath "${_word}" )"
+ irfanfiles="${irfanfiles} \"${thisfile}\""
+ ;;
+ esac
+ fi
+}
+
+getwinepath() {
+ # call: getwinepath "$foo"
+ winepath -w "${@}"
+}
+
+# Define variables
+alltempdirs=""
+
+# prepare files
+irfanargs=
+irfanfiles=
+
+for word in "${@}";
+do
+ expandword "${word}"
+done
+irfanfiles="${irfanfiles## }"
+
+# run wine
+cd $WINEPREFIX
+echo "${irfanfiles}" | xargs echo wine "${IV_EXEC_PATH}" ${irfanargs} > ${IV_DEVTTY}
+echo "${irfanfiles}" | xargs wine "${IV_EXEC_PATH}" ${irfanargs} &
+
+#wait $( pgrep -P $$ ${IV_EXEC_NAME} )
+# WORKHERE try wait with:
+wait %1
+for thistempdir in ${alltempdirs};
+do
+ rm -rf "${thistempdir}" 1>${IV_DEVTTY}
+done
bgstack15