diff install.sh @ 0:a84c32f131df 1.1.29

Import vendor version
author Peter Gervai <grin@grin.hu>
date Wed, 15 Oct 2008 23:28:56 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/install.sh	Wed Oct 15 23:28:56 2008 +0200
@@ -0,0 +1,237 @@
+#!/bin/sh
+# -*-ksh-*-
+
+# This is the BINS install procedure.
+# Run it as root to install BINS system wide
+# or run it with your user to install it only for this user
+
+# PREFIX, RC and DESTDIR environment variables can be set to choose
+# installation paths
+
+# $Id: install.sh,v 1.34 2005/08/24 21:29:44 jerome Exp $
+
+set -o errexit
+set -o nounset
+
+langs="fr de pl it ru es zh_TW nl ja eo fi hu ca"
+templates="swigs joi satyap marc petrus mwolson martin"
+
+DESTDIR="${DESTDIR:-}" # prefix to append to the install dirs
+                       # this is used by the Mandrake and Debian packages
+PREFIX="${PREFIX:-/usr/local}"
+ETC="${ETC:-/etc}"
+RC="${RC:-/etc/bins}"
+GLOBAL_RC="$RC"
+
+DESTDIR=`echo "$DESTDIR"|sed 's%/$%%'`
+PREFIX=$DESTDIR/`echo "$PREFIX"|sed 's%^/%%'`
+PREFIX=`echo "$PREFIX"|sed 's%/$%%'`
+ETC=$DESTDIR/`echo "$ETC"|sed 's%^/%%'`
+ETC=`echo "$ETC"|sed 's%/$%%'`
+RC=$DESTDIR/`echo "$RC"|sed 's%^/%%'`
+RC=`echo "$RC"|sed 's%/$%%'`
+
+BIN="$PREFIX/bin"
+SHARE="$PREFIX/share"
+DATA="$SHARE/bins"
+GLADE="$DATA"
+LOCALE="$SHARE/locale"
+MAN="$PREFIX/man/man1"
+
+cd `dirname $0`
+
+cat <<!EoF
+
+This will install BINS program and configuration files in the following paths :
+PREFIX = $PREFIX
+BIN    = $BIN
+SHARE  = $GLADE
+MAN    = $MAN
+LOCALE = $LOCALE
+RC     = $RC
+
+***************************** WARNING ********************************
+Note that this may replace your old programs, configuration files and
+HTML templates by new ones, so you should backup them if you have
+modified something for personalization.
+**********************************************************************
+
+Press Enter to go on or Crtl-C to stop now...
+!EoF
+
+read dummy
+
+install_binaries()
+{
+  mkdir -p $BIN 2>/dev/null || true
+  if [ -w $BIN ] ; then
+    echo "Installing program files in $BIN"
+    # bins_cleanupgallery anti_bins
+    cp bins bins_edit bins-edit-gui $BIN
+    chmod a+rx $BIN/bins
+    chmod a+rx $BIN/bins_edit
+    chmod a+rx $BIN/bins_cleanupgallery
+    chmod a+rx $BIN/bins-edit-gui
+    chmod a+rx $BIN/anti_bins
+#    perl -pi -e "s{/usr/local/share}{$SHARE}g" \
+#     $BIN/bins $BIN/bins_edit $BIN/bins-edit-gui
+#    perl -pi -e "s{/etc/bins}{$RC}g" \
+#     $BIN/bins $BIN/bins_edit $BIN/bins-edit-gui
+    return 0
+  else
+    echo "Cannot write to $BIN directory." 
+    return 1
+  fi
+}
+
+install_config()
+{
+  mkdir -p $RC 2>/dev/null || true
+  if [ -w $RC ]; then
+    echo "Installing configuration file in $RC"
+    cp binsrc $RC
+    for T in $templates
+    do
+      if [ -d "$RC/templates.$T" ]; then
+	echo "Removing old template.$T in $RC"
+	rm -Rf "$RC/templates.$T"
+      fi
+    done
+    chmod -R a+r $RC/*
+  else
+    echo "Cannot write to $RC."
+    return 1
+  fi
+}
+
+install_data()
+{
+  mkdir -p $DATA 2>/dev/null || true
+  if [ -w $DATA ]; then
+    for T in $templates
+    do
+      echo "Installing default HTML templates in $DATA/templates.$T"
+      if [ ! -d $DATA/templates.$T ] ; then
+	mkdir $DATA/templates.$T
+      fi
+      cp templates.$T/*.html $DATA/templates.$T
+      if ls templates.$T/*.js >/dev/null 2>&1 ; then
+	cp templates.$T/*.js $DATA/templates.$T
+      fi
+      if [ -d templates.$T/static ] ; then
+	cp -R templates.$T/static $DATA/templates.$T
+      fi
+    done
+    chmod -R a+r $DATA/*
+    return 0
+  else
+    echo "Cannot write to $DATA."
+    return 1
+  fi
+}
+
+
+# program files
+set +o errexit
+install_binaries
+if [ "$?" -eq "1" ] ; then
+  BIN=~/bin
+  echo "Trying $BIN..."
+  install_binaries
+  if [ "$?" -eq "1" ] ; then
+    echo "Error: unable to find a directory to write program files, aborting."
+    exit 2
+  fi
+fi
+
+# config file
+install_config
+if [ "$?" -eq "1" ] ; then
+  RC=~/.bins
+  echo "Trying $RC..."
+  install_config
+  if [ "$?" -eq "1" ] ; then
+    echo "Error: unable to find a directory to write configuration file, aborting."
+    exit 2
+  fi
+fi
+
+# templates
+install_data
+if [ "$?" -eq "1" ] ; then
+  DATA=~/.bins
+  echo "Trying $DATA..."
+  install_data
+  if [ "$?" -eq "1" ] ; then
+    echo "Error: unable to find a directory to write templates, aborting."
+    exit 2
+  fi
+fi
+set -o errexit
+
+# additionnal files
+mkdir -p $GLADE 2>/dev/null || true
+if [ -w $GLADE ] ; then
+  echo "Installing additionnal files in $GLADE"
+  cp bins-edit-gui.glade $GLADE
+fi
+
+# man pages
+mkdir -p $MAN 2>/dev/null || true
+if [ -w $MAN ] ; then
+  echo "Installing man page in $MAN"
+  cp doc/*.1 $MAN
+fi
+
+# bash completion
+if [ -w $ETC/bash_completion.d ] ; then
+  echo "Installing bash completion system wide."
+  cp -f bash_completion $ETC/bash_completion.d/bins
+else
+  mkdir ~/.bash_completion 2>/dev/null || true
+  if [ -w ~/.bash_completion ] ; then
+    echo "Installing bash completion for user `whoami`."
+    cp -f bash_completion ~/.bash_completion/bins
+  fi
+fi
+
+# I18N files
+mkdir -p $LOCALE 2>/dev/null || true
+if [ -w $LOCALE ] ; then
+  echo "Installing internationalization messages files."
+  for L in $langs
+  do
+    mkdir -p $LOCALE/$L/LC_MESSAGES 2>/dev/null || true
+    cp intl/$L.mo $LOCALE/$L/LC_MESSAGES/bins.mo
+    if [ -f intl/gui-$L.mo ]; then
+      cp intl/gui-$L.mo $LOCALE/$L/LC_MESSAGES/bins-edit-gui.mo
+    fi
+  done
+else
+  cat <<!EoF  
+
+***************************** Warning **********************************
+Cannot install internationalization messages files and additional
+files.  If you want to generate HTML albums in non-english langage,
+use bins-edit-gui or install the man pages, then you must run this
+install program as root.
+************************************************************************
+
+!EoF
+fi
+
+set +o errexit
+# set directory paths in source code
+echo -n "setting directory paths in programs :"
+for FILE in "$BIN/bins" "$BIN/bins_edit" "$BIN/bins-edit-gui"
+do
+  echo -n " $FILE"
+  ed "$FILE" <<EoF 2>/dev/null
+1,\$s%/usr/local/share%$SHARE%g
+1,\$s%/etc/bins%$GLOBAL_RC%g
+wq
+EoF
+done
+echo .
+echo
+echo "Installation complete"