X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=development%2FMacOSX%2Flyxeditor;h=7431b3b99165ee529b34e609b74f56d7f4b1d661;hb=dc06714adb8ba0678b1d92e017360526eb36a1b2;hp=bee481fec0acf252f706ae8e8ccb301e85246f5e;hpb=6977164d68e697c3ff3decc36e3f7e4821685d55;p=lyx.git diff --git a/development/MacOSX/lyxeditor b/development/MacOSX/lyxeditor index bee481fec0..7431b3b991 100755 --- a/development/MacOSX/lyxeditor +++ b/development/MacOSX/lyxeditor @@ -4,13 +4,13 @@ parse_serverpipe() { - test -r "$1" || { - echo "Usage: parse_serverpipe lyxrc" >&2 - exit 1 - } + test -r "$1" || { + echo "Usage: parse_serverpipe lyxrc" >&2 + exit 1 + } - # The output of this sed script is output to STDOUT - LYXPIPE=`sed -n '/^\\\\serverpipe /{ + # The output of this sed script is output to STDOUT + LYXPIPE=`sed -n '/^\\\\serverpipe /{ # First consider that the file path may be quoted s/^ *\\\\serverpipe \{1,\}\"\([^"]\{1,\}\)\" *$/\1/ tfound @@ -29,23 +29,21 @@ s@^~/@${HOME}/@ p q }' "$1"` - - echo "${LYXPIPE}" - unset LYXPIPE + echo "${LYXPIPE}" } USER_SUPPORT="${HOME}/Library/Application Support" test -d "${USER_SUPPORT}" || { - echo "Something horrible is going on. No user support directory $ {USER_SUPPORT}" >&2 + echo "Something horrible is going on. No user support directory ${USER_SUPPORT}" >&2 exit 1 } -for LYXDIR in LyX-1.5 LyX-1.4 LyX +# we prefer newer lyx releases here... +for LYXDIR in LyX-2.4 LyX-2.3 LyX-2.2 LyX-2.1 LyX-2.0 LyX-1.6 LyX-1.5 LyX-1.4 LyX do ABS_USER_LYXDIR="${USER_SUPPORT}/${LYXDIR}" test -d "${ABS_USER_LYXDIR}" || { - echo "Failed to find ABS_USER_LYXDIR: ${ABS_USER_LYXDIR}" >&2 continue } PREFERENCES="${ABS_USER_LYXDIR}/preferences" @@ -55,38 +53,47 @@ do } # preferences file exists. # See if it contains a \\serverpipe entry - # Whether it does or not, break out of the loop because we've - # found the preferences file. - LYXPIPE=`parse_serverpipe "${PREFERENCES}"` - break + LYXPIPE=$(parse_serverpipe "${PREFERENCES}") + # break if pipe entry and pipe detected + # hopefully it's the correct LyX instance... + if [ -n "$LYXPIPE" -a -p "$LYXPIPE".in ]; then + break + fi done -echo "preferences file sets lyxpipe as ${LYXPIPE}" +# echo "preferences file sets lyxpipe as ${LYXPIPE}" test -z "${LYXPIPE}" && { - ABS_SYSTEM_LYXDIR='/Applications/LyX.app/Contents/Resources' + ABS_SYSTEM_LYXDIR=$(dirname "$0") + ABS_SYSTEM_LYXDIR=$(dirname "${ABS_SYSTEM_LYXDIR}")"/Resources" test -d "${ABS_SYSTEM_LYXDIR}" || { - echo "Failed to find ABS_SYSTEM_LYXDIR: ${ABS_SYSTEM_LYXDIR}" >&2 - exit 1 - } - LYXRC_DIST="${ABS_SYSTEM_LYXDIR}/lyxrc.dist" - test -r "${LYXRC_DIST}" || { - echo "Failed to find LYXRC_DIST: ${LYXRC_DIST}" >&2 - exit 1 - } + echo "Failed to find ABS_SYSTEM_LYXDIR: ${ABS_SYSTEM_LYXDIR}" >&2 + exit 1 + } + LYXRC_DIST="${ABS_SYSTEM_LYXDIR}/lyxrc.dist" + test -r "${LYXRC_DIST}" || { + echo "Failed to find LYXRC_DIST: ${LYXRC_DIST}" >&2 + exit 1 + } # lyxrc.dist exists # See if it contains a \\serverpipe entry - LYXPIPE=`parse_serverpipe "${LYXRC_DIST}"` + LYXPIPE=$(parse_serverpipe "${LYXRC_DIST}") } -echo "Our best guess sets lyxpipe as ${LYXPIPE}" - +if [ -n "$LYXPIPE" -a -p "$LYXPIPE".in ]; then + file=$(echo "$1" | sed 's|^/private||') + + MAC_LYXPIPE_CONTENTS="LYXCMD:macdvix:server-goto-file-row:$file $2" + # echo "$MAC_LYXPIPE_CONTENTS" + echo "$MAC_LYXPIPE_CONTENTS" > "${LYXPIPE}".in || { echo "Cannot write to lyxpipe." ; exit 2 ; } + while read line ; do + echo LyX said: $line + done < "${LYXPIPE}".out || { echo "Cannot read from lyxpipe." ; exit 2 ; } +else + echo "Our best guess sets lyxpipe as ${LYXPIPE}" + echo "But the lyxpipe could not be found." + exit 1 +fi # The end -file=`echo "$1" | sed 's|^/private||'` - -MAC_LYXPIPE_CONTENTS="LYXCMD:macdvix:server-goto-file-row:$file $2" -echo "$MAC_LYXPIPE_CONTENTS" -echo "$MAC_LYXPIPE_CONTENTS" > "${LYXPIPE}".in || exit -read < "${LYXPIPE}".out || exit