#!/bin/csh -f
#
#
# Copyright (C) Comunicacion Integral, Las Palmas de Gran Canaria, 1997
#
# Setup script for
#
# Jaleo
#
# The Digital Video Postproduction System 
#
# Brought To You Directly From The Canary Islands
#
#
set VERSION = "Jaleo 3.5 Setup Script"
echo
echo ==============================================
echo $VERSION
echo ==============================================
echo

###########################################################
# Variables and other settings
###########################################################
set J_DEBUG = "FALSE"

set J_INSTALL = "INSTALL"
set J_ENV = "JALEO-ENV"
set J_DOC = "jaleoDocsrc .acrorc"
set J_PLUGFD = "5D-PlugIns"
set J_LOGIN = ".cshrc .login .profile .Xdefaults .Sgiresources .auxchestrc"
set J_ICON = ".icons"
set J_DESK = ".desktop"
set SGI_DUMPSTER = "dumpster"
set J_DESK_BG_TARGET = "ozPanelLayout-1.00/Background"
set J_DESK_BG_TEMPLATE = "Background.template"
set EXP = "XXXJaleoXXX"
set J_FTX = "ICON"
set J_FTI = "*.fti"
set J_MAGIC = "/etc/magic"
set J_FTR = "jaleo.ftr"
set J_FTR_TARGET = "/usr/lib/filetype/install"
set J_FTI_TARGET = "/usr/lib/filetype/install/iconlib"
set J_FTR_MAKEDIR = "/usr/lib/filetype/install"
set J_FTR_MAKEDIR2 = "/usr/lib/filetype"
set J_FTX_DELETE = "*.ctr *.otr"
set J_WORK = "JALEO_WORK"
set J_PROJ = "JALEO_PRJ"

set J_EXTERN_PATH = "JALEO-ENV/extern"
set J_SBIN_TPATH = "/usr/sbin"
set J_LIB_TPATH = "/usr/lib"
set J_LIB_SOURCE = "JALEO-ENV/extern/libs/lib.cpio"

set J_COLDIR = "JALEO-ENV/etc/app-defaults"

set J_EXEC = "bin utils"
set J_CONFIG = "etc/devices JALEO_WORK JALEO_PRJ"
set J_READONLY = "JALEO_ENV"

set BELL = "\007"


set DEFAULT_PROJ = "JDEFAULT"
#
# Commands used
#
set UNAME   = "uname -r"
set ID	    = "id"
set CUT	    = "cut"
set WHOAMI  = "whoami"
set DF	    = "df -k"
set NAWK    = "nawk"
set PWD	    = "pwd"
set MKDIR   = "mkdir"
set MT	    = "mt"
set SLEEP   = "sleep"
set CD	    = "cd"
set TAR	    = "tar"
set CP	    = "cp"
set HOSTNAME = "/usr/bsd/hostname"
set MAKE    = "make -s"
set CHMOD   = "chmod"
set CHOWN   = "chown"
set RM = "rm"
set RGB = "rgb"


#
#  Set a handler to be called on interrupt
#
onintr handleInterupt

###########################################################
# Check directory
###########################################################
if ( ! -d $J_INSTALL ) then
    echo 
    echo $BELL
    echo '*** Error: Can not find directory '$J_INSTALL
    echo
    echo You propably try to run this script from the wrong directory
    echo Run the install script from the future home directory
    echo and NOT inside the $J_INSTALL directory
    echo
    exit 0
endif

###########################################################
# Check calling format
###########################################################

if ( $#argv != 1 ) then
    echo $BELL
    echo '*** Error: No or invalid user name set'
    echo
    echo Please enter base Jaleo account name': \c'
getUser:
    set J_USER = $<
else
    set J_USER = $1    
endif

set J_HOME = `echo ~$J_USER`
if ($status != 0) then
    echo 
    echo $BELL
    echo A non existing user name has been entered
    echo Please enter the name of the Jaleo base account': \c'
    goto getUser
else
    echo
    echo "  User set to $J_USER"
    echo "  Home set to $J_HOME"
endif

    
set BASE = `pwd`
#XXXecho $BASE

# move directories that should have dot in front
set flist=( `find . | egrep '/DOT\.'` )
while ( $#flist )
  foreach i ( $flist )
    # might be moved by previous action on a directory
    if ( ! -e $i ) continue
    set b=`echo $i | sed s/\\/DOT\\./\\/./`
    mv $i $b
  end
  set flist=( `find . | egrep '/DOT\.'` )
end


###########################################################
# Copy login files
###########################################################
echo
echo "  Setting up login files..."
#XXXecho '\t'=========================
$CD $J_INSTALL
if ( $J_DEBUG == "TRUE" ) then
    echo $CP $J_LOGIN $BASE
else
    $CP $J_LOGIN $BASE
endif


echo "include " $J_HOME/jaleoDocsrc >> $J_HOME/.auxchestrc

$CD $BASE
echo
echo "  Setting up Manual files..."
#XXXecho '\t'==========================
$CD $J_INSTALL
if ( $J_DEBUG == "TRUE" ) then
    echo $CP $J_DOC $BASE
else
    $CP $J_DOC $BASE
endif

$CD $BASE  
$CD $J_INSTALL


# XXX   Is supported this option now?
if ( -e $J_PLUGFD ) then
  echo
  echo '\t'Setting up 5D ready to install...
  echo '\t'=================================
  if ( $J_DEBUG == "TRUE" ) then
    echo $CP -r $J_PLUGFD $BASE
  else
    $CP -r $J_PLUGFD $BASE
  endif
endif


        
###########################################################
# Copy desktop configuration
###########################################################
echo
echo "  Creating default desktop configuration..."
# XXX echo '\t'=========================================
if ( $J_DEBUG == "TRUE" ) then
    echo $CP -r $J_DESK $BASE/$J_DESK-`$HOSTNAME`
    set target = $BASE/$J_DESK-`$HOSTNAME`/$J_DESK_BG_TARGET
    echo Desktop target':' $target
    $NAWK -v ext=$EXP -v rep=$BASE '{sub(ext, rep); print $0}' $J_DESK_BG_TEMPLATE
    #echo $MKDIR $BASE/$SGI_DUMPSTER
    #echo $MKDIR $BASE/$SGI_DUMPSTER/.$SGI_DUMPSTER
else
    $CP -r $J_DESK $BASE/$J_DESK-`$HOSTNAME`
    set target = $BASE/$J_DESK-`$HOSTNAME`/$J_DESK_BG_TARGET
    $NAWK -v ext=$EXP -v rep=$BASE '{sub(ext, rep); print $0}' $J_DESK_BG_TEMPLATE > $target
    #$MKDIR $BASE/$SGI_DUMPSTER
    #$MKDIR $BASE/$SGI_DUMPSTER/.$SGI_DUMPSTER
endif

###########################################################
# Copy icons
###########################################################
$CD $BASE  
$CD $J_INSTALL
echo
echo "  Copying Jaleo Icons..."
#XXXecho '\t'======================
if ( $J_DEBUG == "TRUE" ) then
    echo $CP -r $J_ICON $BASE
else
    $CP -r $J_ICON $BASE
endif
$CD $BASE

###########################################################
# Install Colors
###########################################################
echo
echo "  Installing Color Database..."
#XXXecho '\t'============================
$CD $J_COLDIR
if ( $J_DEBUG == "TRUE" ) then
    echo $RGB < rgb.txt
else
    $RGB < rgb.txt
endif
$CD $BASE

###########################################################
# Setup filetype rules 
###########################################################
echo
echo "  Setting up desktop integration..."
echo
#XXXecho '\t'=================================
$CD $J_INSTALL/$J_FTX
echo "    Copying icon files..."
echo
if ( $J_DEBUG == "TRUE" ) then
    echo $CP $J_FTI $J_FTI_TARGET
    echo $CP $J_FTR $J_FTR_TARGET
else
    $CP $J_FTI $J_FTI_TARGET
    $CP $J_FTR $J_FTR_TARGET
endif
$CD $BASE

$CD $J_FTR_MAKEDIR
echo "    Changing to $J_FTR_MAKEDIR"
echo
if ( $J_DEBUG == "TRUE" ) then
    echo $RM $J_FTX_DELETE
    echo $MAKE
else
    $RM $J_FTX_DELETE
    echo "    === Please wait while I update your desktop files..."
    echo "    === This might give some warnings on files that are not part of Jaleo"
    echo
    $MAKE |& fgrep -v "ignoring the include directive"
endif
$CD $J_FTR_MAKEDIR2
echo "    Changing to $J_FTR_MAKEDIR2"
echo
if ( $J_DEBUG == "TRUE" ) then
    echo $MAKE
else
    echo "    === Still updating desktop files. Please wait..."
    echo
    $MAKE
endif
$CD $BASE

###########################################################
# Setup Work Directory
###########################################################
echo
echo "  Creating Jaleo Work Directory..."
#XXXecho '\t'================================
if ( $J_DEBUG == "TRUE" ) then
    echo $MKDIR WORK
else
    $MKDIR WORK
endif
$CD $J_ENV
if ( $J_DEBUG == "TRUE" ) then
    echo Writing $J_WORK and $J_PROJ
else   
    echo $J_HOME/WORK > $J_WORK
    $CHMOD 644 $J_WORK
    echo $DEFAULT_PROJ >  $J_PROJ
    $CHMOD 644 $J_PROJ
    if ( ! -d $J_HOME/WORK ) then
	$MKDIR $J_HOME/WORK
    endif
 
    cd 	$J_HOME/WORK
    $MKDIR $DEFAULT_PROJ

    cd $DEFAULT_PROJ
    $MKDIR .IMAGESRC
    $MKDIR .PLUGIN_DATA
    $MKDIR .SOUNDSRC
    $MKDIR CLIPIMAGES
    $MKDIR CLIPSOUND
    $MKDIR EDL
    $MKDIR EFFECTS
    $MKDIR ENVIRONMENT
    $MKDIR GALLERY
    $MKDIR GROUPS
    $MKDIR PAINT
    $MKDIR RENDER
    $MKDIR SETUP
    $MKDIR SHAPES
    $MKDIR TEXTS
   
    cd 	$J_HOME
    $CHOWN  $J_USER.user WORK
    $CHMOD -R 777 WORK
    
endif
$CD $BASE

###########################################################
# Checking Libraries
###########################################################
#echo
#echo '\t'Checking libraries...
#echo '\t'=====================
#if ( $J_DEBUG == "TRUE" ) then
#    ls $J_LIB_TPATH/$J_CLLIB*
#    ls $J_LIB_TPATH/$J_VLLIB*
#else
#  set lis=""
#  foreach i ( `cpio -it -I $J_LIB_SOURCE` )
#    if  ( -e $i ) then
#      echo $i present
#    else
#      echo extracting $i
#      set lis=($lis $i)
#    endif
#  end
#  if ( $lis != "" ) cpio -iv -I $J_LIB_SOURCE $lis	
#endif    


###########################################################
# Setting /etc/magic
###########################################################
echo
echo "  Updating /etc/magic..."
# XXX echo '\t'======================

if ( ! -w $J_MAGIC ) then
    echo "    \n\nWARNING - /etc/magic does not exist or does not have write permission."
    echo "    When executing the command 'file' on a .js file it will not give a full description.\n\n"
else

    if ( $J_DEBUG == "TRUE" ) then
	echo "# Jaleo XFS files >>  $J_MAGIC" 
	echo "0	long	395726					Jaleo XFS file	>> $J_MAGIC"
	echo ">4	long	x				- version %ld	>> $J_MAGIC"
	echo ">8	long	x				- [%ld -    	>> $J_MAGIC"
	echo ">20	long	x				%ldx		>> $J_MAGIC"
	echo ">24	long	x				%ldx		>> $J_MAGIC"
	echo ">28	long	1008				YUV422]  	>> $J_MAGIC"
	echo ">28	long	1000				RGB24]   	>> $J_MAGIC"
    else
	
    echo "# Jaleo XFS files" >> $J_MAGIC
	echo  "0	long	395726				Jaleo XFS file" >> $J_MAGIC
	echo ">4	long	x				- version %ld"	>> $J_MAGIC
	echo ">8	long	x				- [%ld -"	>> $J_MAGIC
	echo ">20	long	x				%ldx"	>> $J_MAGIC
	echo ">24	long	x				%ldx"	>> $J_MAGIC
	echo ">28	long	1008				YUV422]"	>> $J_MAGIC
	echo ">28	long	1000				RGB24]"	>> $J_MAGIC
    endif

    # XXX echo "    done\!"
endif


###########################################################
# Fixing Ownership
###########################################################
echo
echo "  Fixing Ownership..."
#XXXecho '\t'================'\n'
echo
echo
echo
echo
echo
$CD $BASE
#XXXecho `pwd`
if ( $J_DEBUG == "TRUE" ) then
    echo $CHOWN -R $J_USER.user $BASE
else
    $CHOWN -R $J_USER.user $BASE
endif

#
# Make sure we exit properly
#
exit 0

handleInterupt:
#
# This is called after the user pressed control-c
#

echo
echo
echo 'You have interrupted the installation. You may have'
echo 'loaded files to disk partially or completely.'
echo 'We will leave the installed files where they are, '
echo 'in case this is what you wanted'
echo
echo 'You may want to clean out the directory'
echo $J_HOME
echo 'where the installed files are stored'
echo 'and remove the matching entry from your /etc/passwd file'
echo 'Adios.'
echo
exit 0
