2 changed files with 258 additions and 0 deletions
@ -0,0 +1,160 @@
|
||||
#!/bin/sh |
||||
## |
||||
## msov -- Microsoft Office Viewer Frontend Utility |
||||
## Copyright (c) 2003 Ralf S. Engelschall <rse@engelschall.com> |
||||
## |
||||
|
||||
# configuration |
||||
prefix="@l_prefix@" |
||||
|
||||
# knowledge about viewers |
||||
info_doc='wd97vwr32.exe:Microsoft Office 2000, Word Viewer:Program Files/WordView/WORDVIEW.EXE' |
||||
info_xls='xlViewer.exe:Microsoft Office 2000, Excel Viewer:Program Files/XLView/XLVIEW.EXE' |
||||
info_ppt='ppview97.exe:Microsoft Office 2000, PowerPoint Viewer:Program Files/PowerPoint Viewer/PPVIEW32.EXE'; |
||||
|
||||
# option defaults |
||||
setup=no |
||||
format="" |
||||
help="" |
||||
quiet=no |
||||
|
||||
# iterate over argument line |
||||
while [ $# -gt 0 ]; do |
||||
opt=$1 |
||||
case $opt in |
||||
-*=*) arg=`echo "$opt" | sed 's/^[-_a-zA-Z0-9]*=//'` ;; |
||||
*) arg='' ;; |
||||
esac |
||||
case $opt in |
||||
-s|--setup ) setup=yes ;; |
||||
-h|--help ) help="Usage" ;; |
||||
-q|--quiet ) quiet=yes ;; |
||||
--format=* ) format=$arg ;; |
||||
-* ) help="Invalid option \`$opt'"; break ;; |
||||
* ) break ;; |
||||
esac |
||||
shift |
||||
done |
||||
|
||||
# display error or usage message |
||||
if [ ".$help" != . ]; then |
||||
if [ ".$help" != ".Usage" ]; then |
||||
echo "msov:ERROR: $help" 1>&2 |
||||
fi |
||||
echo "Usage: msov [-q|--quiet] [-s|--setup]" 1>&2 |
||||
echo "Usage: msov [--format=doc|xls|ppt] <file>" 1>&2 |
||||
echo "Usage: msov [-h|--help]" 1>&2 |
||||
if [ ".$help" != ".Usage" ]; then |
||||
exit 1 |
||||
else |
||||
exit 0 |
||||
fi |
||||
fi |
||||
|
||||
# make sure WINE area was already established |
||||
if [ ! -d "$HOME/.wine/c_drive" ]; then |
||||
echo "msov:ERROR: WINE still not setup for current user" 1>&2 |
||||
echo "msov:HINT: You have to establish the WINE area $HOME/.wine first" 1>&2 |
||||
echo "msov:HINT: by running the OpenPKG utility \"$prefix/bin/winesetup\"" 1>&2 |
||||
exit 1 |
||||
fi |
||||
|
||||
# setup Office Viewers in WINE installation |
||||
if [ ".$setup" = .yes ]; then |
||||
# preparation |
||||
if [ ".$quiet" = .no ]; then |
||||
echo "++ creating temporary location in WINE area" |
||||
fi |
||||
rm -rf $HOME/.wine/c_drive/msov >/dev/null 2>&1 || true |
||||
mkdir $HOME/.wine/c_drive/msov |
||||
|
||||
# perform installations |
||||
for info in "$info_doc" "$info_xls" "$info_ppt"; do |
||||
prog=`echo $info | sed -e 's;:.*$;;'` |
||||
name=`echo $info | sed -e 's;^[^:]*:;;' -e 's;:.*$;;'` |
||||
path=`echo $info | sed -e 's;^[^:]*:[^:]*:;;'` |
||||
if [ ".$quiet" = .no ]; then |
||||
echo "++ installation of $name" |
||||
echo "-- copying setup executable \"$prog\" into WINE area" |
||||
fi |
||||
cp $prefix/share/wine-msov/$prog $HOME/.wine/c_drive/msov/ |
||||
if [ ".$quiet" = .no ]; then |
||||
echo "++ running setup executable \"$prog\" with WINE" |
||||
echo " (PLEASE FOLLOW THE INTERACTIVE INSTALLATION MANUALLY" |
||||
echo " YES -> CONTINUE -> OK -> ACCEPT -> INSTALL -> OK)" |
||||
fi |
||||
$prefix/bin/wine "C:\\msov\\$prog" >/dev/null 2>&1 || true |
||||
done |
||||
|
||||
# cleanup |
||||
if [ ".$quiet" = .no ]; then |
||||
echo "++ removing temporary location in WINE area" |
||||
fi |
||||
rm -rf $HOME/.wine/c_drive/msov >/dev/null 2>&1 || true |
||||
exit 0 |
||||
fi |
||||
|
||||
# view one ore more files |
||||
if [ $# -eq 0 ]; then |
||||
echo "msov:ERROR: no files specified for viewing" 1>&2 |
||||
exit 1 |
||||
fi |
||||
rc=0 |
||||
for file in $*; do |
||||
# make sure file exists |
||||
if [ ! -f $file ]; then |
||||
echo "msov:ERROR: file \"$file\" not found" 1>&2 |
||||
rc=1 |
||||
continue |
||||
fi |
||||
|
||||
# determine format |
||||
fmt="$format" |
||||
if [ ".$fmt" = . ]; then |
||||
fmt=`echo "$file" | sed -e 's;^.*\.\([^.]*\)$;\1;' | tr '[A-Z]' '[a-z]'` |
||||
fi |
||||
case "$fmt" in |
||||
[dD][oO][cC] | [xX][lL][sS] | [pP][pP][tT] ) |
||||
;; |
||||
* ) |
||||
echo "msov:ERROR: unknown format, please use --format=doc|xls|ppt" 1>&2 |
||||
rc=1 |
||||
continue |
||||
;; |
||||
esac |
||||
|
||||
# determine viewer application path |
||||
eval "info=\$info_${fmt}" |
||||
if [ ".$info" = . ]; then |
||||
echo "msov:ERROR: unable to determine viewer application" 1>&2 |
||||
rc=1 |
||||
continue |
||||
fi |
||||
prog=`echo $info | sed -e 's;:.*$;;'` |
||||
name=`echo $info | sed -e 's;^[^:]*:;;' -e 's;:.*$;;'` |
||||
path=`echo $info | sed -e 's;^[^:]*:[^:]*:;;'` |
||||
if [ ! -f "$HOME/.wine/c_drive/$path" ]; then |
||||
echo "msov:ERROR: viewer \"$path\" not found" 1>&2 |
||||
echo "msov:HINT: run \"msov --setup\" first" 1>&2 |
||||
rc=1 |
||||
continue |
||||
fi |
||||
path=`echo "$path" | sed -e 's;^;C:\\\\;' | sed -e 's;//*;\\\\;g'` |
||||
|
||||
# determine path from WINE's point of view |
||||
# (simple file in current dir is automatically handled by WINE) |
||||
case "$file" in |
||||
/*/* ) |
||||
file=`echo "$file" | sed -e 's;^;R:;' | sed -e 's;//*;\\\\;g'` |
||||
;; |
||||
*/* ) |
||||
file="`pwd`/$file" |
||||
file=`echo "$file" | sed -e 's;^;R:;' | sed -e 's;//*;\\\\;g'` |
||||
;; |
||||
esac |
||||
|
||||
# execute the viewer application |
||||
$prefix/bin/wine "$path" "$file" >/dev/null 2>&1 |
||||
done |
||||
exit $rc |
||||
|
||||
@ -0,0 +1,98 @@
|
||||
## |
||||
## wine-msov.spec -- OpenPKG RPM Specification |
||||
## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/> |
||||
## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com> |
||||
## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.com/> |
||||
## |
||||
## Permission to use, copy, modify, and distribute this software for |
||||
## any purpose with or without fee is hereby granted, provided that |
||||
## the above copyright notice and this permission notice appear in all |
||||
## copies. |
||||
## |
||||
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
||||
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
||||
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
||||
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
||||
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
||||
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
||||
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
||||
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
||||
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
||||
## SUCH DAMAGE. |
||||
## |
||||
|
||||
# package information |
||||
Name: wine-msov |
||||
Summary: Microsoft Office Viewer for WINE |
||||
URL: http://www.microsoft.com/ |
||||
Vendor: Microsoft |
||||
Packager: The OpenPKG Project |
||||
Distribution: OpenPKG [EVAL] |
||||
Group: X11 |
||||
License: Freeware |
||||
Version: 20030718 |
||||
Release: 20030718 |
||||
|
||||
# list of sources |
||||
Source0: http://download.microsoft.com/download/excel2000/Xlviewer/2000/WIN98/EN-US/xlViewer.exe |
||||
Source1: http://download.microsoft.com/download/word2000/wd97vwr/2000/WIN98/EN-US/wd97vwr32.exe |
||||
Source2: http://download.microsoft.com/download/powerpoint2000/ppview97/2000/WIN98/EN-US/ppview97.exe |
||||
Source3: wine-msov.sh |
||||
|
||||
# build information |
||||
Prefix: %{l_prefix} |
||||
BuildRoot: %{l_buildroot} |
||||
BuildPreReq: OpenPKG, openpkg >= 20030103 |
||||
PreReq: OpenPKG, openpkg >= 20030103, X11, wine |
||||
AutoReq: no |
||||
AutoReqProv: no |
||||
|
||||
%description |
||||
This package contains the freely available viewer applications |
||||
from Microsoft Office 2000 for the Word 2000 (.doc), Excel 2000 |
||||
(.xls) and PowerPoint 2000 (.ppt) format files. To be used, they |
||||
have to be installed into the WINE installation area of each user. |
||||
More information about the three applications can be found at the |
||||
following URLs: |
||||
|
||||
http://office.microsoft.com/downloads/2000/wd97vwr32.aspx |
||||
http://office.microsoft.com/downloads/2000/xlviewer.aspx |
||||
http://office.microsoft.com/downloads/2000/ppview97.aspx |
||||
|
||||
%prep |
||||
%setup -q -c -T |
||||
|
||||
%build |
||||
|
||||
%install |
||||
rm -rf $RPM_BUILD_ROOT |
||||
%{l_shtool} mkdir -f -p -m 755 \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/bin |
||||
%{l_shtool} install -c -m 755 %{l_value -s -a} \ |
||||
%{SOURCE wine-msov.sh} \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/bin/msov |
||||
%{l_shtool} mkdir -f -p -m 755 \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/share/wine-msov |
||||
%{l_shtool} install -c -m 644 \ |
||||
%{SOURCE wd97vwr32.exe} \ |
||||
%{SOURCE xlViewer.exe} \ |
||||
%{SOURCE ppview97.exe} \ |
||||
$RPM_BUILD_ROOT%{l_prefix}/share/wine-msov/ |
||||
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std} |
||||
|
||||
%files -f files |
||||
|
||||
%clean |
||||
rm -rf $RPM_BUILD_ROOT |
||||
|
||||
%post |
||||
if [ $1 -eq 1 ]; then |
||||
( echo "In order to use \"msov\", every user has to install local copies" |
||||
echo "of the viewer applications into the WINE folder \$HOME/.wine/." |
||||
echo "For this each user has to initially run:" |
||||
echo "\$ $RPM_INSTALL_PREFIX/bin/msov --setup" |
||||
) | %{l_rpmtool} msg -b |
||||
fi |
||||
|
||||
Loading…
Reference in new issue