summaryrefslogtreecommitdiff
path: root/irfanview/irfanview64
diff options
context:
space:
mode:
authorB Stack <bgstack15@gmail.com>2019-05-18 21:34:08 -0400
committerB Stack <bgstack15@gmail.com>2019-05-18 21:34:08 -0400
commit1beac7ad1dc688b460011bfa43913024b9707450 (patch)
treea8066948d12aa6ba923d69d7f2aa51ff91583940 /irfanview/irfanview64
parentirfanview 4.53 rpm old-style (diff)
downloadstackrpms-1beac7ad1dc688b460011bfa43913024b9707450.tar.gz
stackrpms-1beac7ad1dc688b460011bfa43913024b9707450.tar.bz2
stackrpms-1beac7ad1dc688b460011bfa43913024b9707450.zip
irfanview 4.53 rpm...
rewritten to build both 32-bit and 64-bit versions from a single spec file. Also includes the ImageMagick convert fix in the dpkg instructions.
Diffstat (limited to 'irfanview/irfanview64')
-rwxr-xr-xirfanview/irfanview6494
1 files changed, 94 insertions, 0 deletions
diff --git a/irfanview/irfanview64 b/irfanview/irfanview64
new file mode 100755
index 0000000..b67e43d
--- /dev/null
+++ b/irfanview/irfanview64
@@ -0,0 +1,94 @@
+#!/bin/sh
+# File: /usr/bin/irfanview64
+# 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.
+# 2019-02-26 remove /etc/default/irfanview file
+# Usage: irfan /path/to/image /another/image/file
+# Reference:
+# Ideas for zip expansion and winepath https://github.com/Zykr/IrfanViewLinux/blob/master/irfanview
+# Improve:
+
+# load variables
+test -z "${IV_WINEPREFIX}" && export IV_WINEPREFIX="$HOME/.wine64"
+test -n "${IV_WINEPREFIX}" && export WINEPREFIX="${IV_WINEPREFIX}" || export WINEPREFIX=$HOME/.wine64
+test -z "${IV_DEVTTY}" && export IV_DEVTTY=/dev/null
+test -z "${IV_EXEC_NAME}" && export IV_EXEC_NAME="i_view64.exe"
+test -z "${IV_EXEC_PATH}" && export IV_EXEC_PATH="/usr/share/irfanview64/i_view64.exe"
+
+IV_VERSION="2019-02-26a"
+
+# 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