HTTrack Website Copier
Free software offline browser - FORUM
Subject: Fix for /usr/bin/webhttrack script for epiphany
Author: mts
Date: 02/25/2009 09:20
 
Hello,


     I used the web search on google and this forum. I was not able to find
the "Connection refused" solution. Someone asked in 2006 but it is 2009 now. I
think this  might be the solution by slightly eiditing the file. I don't do
scripts don't know them but this script was more commonsense. Here is what
probably has fixed it:


#!/bin/bash
#
# WebHTTrack launcher script
# Initializes the htsserver GUI frontend and launch the default browser

BROWSEREXE=
SRCHBROWSEREXE="x-www-browser www-browser epiphany iceape mozilla firefox
firebird galeon konqueror opera netscape"
if test -n "${BROWSER}"; then
# sensible-browser will f up if BROWSER is not set
SRCHBROWSEREXE="xdg-open sensible-browser ${SRCHBROWSEREXE}"
fi
SRCHPATH="/usr/local/bin /usr/share/bin /usr/bin /usr/lib/httrack
/usr/local/lib/httrack /usr/local/share/httrack /sw/bin ${HOME}/usr/bin
${HOME}/bin"
SRCHPATH="$SRCHPATH "`echo $PATH | tr ":" " "`
SRCHDISTPATH="/usr/share /usr/local /usr /local /usr/local/share ${HOME}/usr
${HOME}/usr/share /sw ${HOME}/usr/local ${HOME}/usr/share"

###
# And now some famous cuisine

function log {
echo "$0($$): $@" >&2
return 0
}

function mozillabrowser {
# returns 0, if the browser is mozilla type
echo "$1" | grep -q "iceape"
[ $? -eq 0 ] && return 0 
echo "$1" | grep -q "mozilla"
[ $? -eq 0 ] && return 0 
echo "$1" | grep -q "netscape"
[ $? -eq 0 ] && return 0 
echo "$1" | grep -q "firebird"
[ $? -eq 0 ] && return 0 
echo "$1" | grep -q "firefox"
[ $? -eq 0 ] && return 0 
echo "$1" | grep -q "epiphany"
[ $? -eq 0 ] && return 0 
return 1;
}
function mozillaloaded  {
user_name=`logname 2>/dev/null`
if ! test -n "${user_name}"; then
user_name=`id -un`
fi
if test -n "${user_name}"; then
ps -e --user "$user_name" | grep -qE
"(iceape|mozilla|netscape|epiphany|firebird|firefox)"
else
false
fi
}

function launch_browser {
log "launching $1"
start_t=`date +%s`
browser=$1
url=$2
moz=
if mozillaloaded; then
moz=1
fi
# launch any browser
# if it is a mozilla like browser, check if the browser is running and use 
# -remote if needed. Change the URL into openURL($url) too. 
# (thanks to Torsten Werner for the patch)
# see <http://www.mozilla.org/unix/remote.html>
# 04/2006: openurl() fix from Samuel Suther
if mozillabrowser ${browser}; then
	if ! ${browser} -remote "openurl(${url})"; then
		log "spawning browser.."
		${browser} "${url}"
	fi
else
	log "spawning regular browser.."
	${browser} "${url}"
fi
# this is a real pain in the neck: browser can hiddenly use the -remote
feature of
# mozilla and therefore return immediately
# this loop is the only reliable solution AFAIK
end_t=`date +%s`
if test -n "$start_t" -a -n "$end_t"; then
	int_t=$[$end_t-$start_t]
else
	int_t=0
fi
if test -n "${int_t}" -a "${int_t}" -lt 60; then
	if test -n "$moz"; then
		log "waiting for browser to terminate.."
		while mozillaloaded; do
			sleep 3
		done
		log "browser seems to have been closed.."
	fi
fi
log "browser exited"
}

# First ensure that we can launch the server
BINPATH=
for i in ${SRCHPATH}; do
	! test -n "${BINPATH}" && test -x ${i}/htsserver && BINPATH=${i}
done
for i in ${SRCHDISTPATH}; do
	! test -n "${DISTPATH}" && test -f "${i}/httrack/lang.def" &&
DISTPATH="${i}/httrack"
done
test -n "${BINPATH}" || ! log "could not find htsserver" || exit 1
test -n "${DISTPATH}" || ! log "could not find httrack directory" || exit 1
test -f ${DISTPATH}/lang.def || ! log "could not find ${DISTPATH}/lang.def" ||
exit 1
test -f ${DISTPATH}/lang.indexes || ! log "could not find
${DISTPATH}/lang.indexes" || exit 1
test -d ${DISTPATH}/lang || ! log "could not find ${DISTPATH}/lang" || exit 1
test -d ${DISTPATH}/html || ! log "could not find ${DISTPATH}/html" || exit 1

# Locale
HTSLANG="${LC_MESSAGES}"
! test -n "${HTSLANG}" && HTSLANG="${LC_ALL}"
! test -n "${HTSLANG}" && HTSLANG="${LANG}"
test -n "${HTSLANG}" && HTSLANG="`echo ${HTSLANG} | cut -c1-2` | tr 'A-Z'
'a-z'"
LANGN=`grep "${HTSLANG}:" ${DISTPATH}/lang.indexes | cut -f2 -d':'`
! test -n "${LANGN}" && LANGN=1

# Find the browser
# note: not all systems have sensible-browser or www-browser alternative
# thefeore, we have to find a bit more if sensible-browser could not be found

for i in ${SRCHBROWSEREXE}; do
for j in ${SRCHPATH}; do
if test -x ${j}/${i}; then
BROWSEREXE=${j}/${i}
fi
test -n "$BROWSEREXE" && break
done
test -n "$BROWSEREXE" && break
done
test -n "$BROWSEREXE" || ! log "cound not find any suitable browser" || exit
1

# "browse" command
if test "$1" = "browse"; then
if test -f "${HOME}/.httrack.ini"; then
INDEXF=`cat ${HOME}/.httrack.ini | tr '\r' '\n' | grep -E "^path=" | cut -f2-
-d'='`
if test -n "${INDEXF}" -a -d "${INDEXF}" -a -f "${INDEXF}/index.html"; then
INDEXF="${INDEXF}/index.html"
else
INDEXF=""
fi
fi
if ! test -n "$INDEXF"; then 
INDEXF="${HOME}/websites/index.html"
fi
launch_browser "${BROWSEREXE}" <file://${INDEXF}">;
exit $?fi

# Create a temporary filename
TMPSRVFILE="/tmp/.webhttrack.$$.`head -c16 /dev/random | md5sum | cut -f1 -d'
'`"
>${TMPSRVFILE} || ! log "cound not create the temporary file ${TMPSRVFILE}" ||
exit 1
# Launch htsserver binary and setup the server
(${BINPATH}/htsserver "${DISTPATH}/" path "${HOME}/websites" lang "${LANGN}"
$@; echo SRVURL=error) > ${TMPSRVFILE}&
# Find the generated SRVURL
SRVURL=
MAXCOUNT=60
while ! test -n "$SRVURL"; do
MAXCOUNT=$[$MAXCOUNT - 1]
test $MAXCOUNT -gt 0 || exit 1
test $MAXCOUNT -lt 50 && echo "waiting for server to reply.."
SRVURL=`grep -E URL= ${TMPSRVFILE} | cut -f2- -d=`
test ! "$SRVURL" = "error" || ! log "could not spawn htsserver" || exit 1
test -n "$SRVURL" || sleep 1
done

# Cleanup function
function cleanup {
test -n "$1" && log "nasty signal caught, cleaning up.."
test -f ${TMPSRVFILE} && SRVPID=`grep -E PID= ${TMPSRVFILE} | cut -f2- -d=`
test -n "${SRVPID}" && kill -9 ${SRVPID}
test -f ${TMPSRVFILE} && rm ${TMPSRVFILE}
test -n "$1" && log "..done"
return 0
}

# Cleanup in case of emergency
trap "cleanup now; exit" 1 2 3 4 5 6 7 8 9 11 13 14 15 16 19 24 25

# Got SRVURL, launch browser
launch_browser "${BROWSEREXE}" "${SRVURL}"

# That's all, folks!
trap "" 1 2 3 4 5 6 7 8 9 11 13 14 15 16 19 24 25
cleanup
exit 0 
 
Reply


All articles

Subject Author Date
Fix for /usr/bin/webhttrack script for epiphany

02/25/2009 09:20




0

Created with FORUM 2.0.11