Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
preserve
Package: gnusql-0.7b5.1.tar.gz [view]
Upload User: dgyhgb
Upload Date: 2007-01-07
Package Size: 676k
Code Size: 2k
Category:
SQL Server
Development Platform:
Unix_Linux
- #! /bin/sh
- # preserve: tool to resolve abscence of external tools
- #
- # This file is part of GNU SQL Server
- #
- # processing of preserved files
- # usage: preserve save/restore case file
- # where case is :
- # --bison
- # --flex
- # --rpcgen [incdir]
- # --custom="extension list_of_derivative_extensions"
- #
- # Contacts: gss@ispras.ru
- #
- #set -xv
- if [ $1 = save ] ; then
- preserve=yes
- else
- preserve=no
- fi
- fn=$3
- case "$2" in
- --bison)
- extension="y"
- subst_list=".c .h"
- ;;
- --flex)
- extension="l"
- subst_list=".c"
- ;;
- --rpcgen)
- extension="x"
- subst_list=".h _svc.c _clnt.c _xdr.c"
- if [ $preserve = 'no' ]; then ## simulate rpcgen
- incdir=$fn
- fn=$4
- fi
- ;;
- --custom=*)
- set `echo $2 | sed 's/--custom=//g'`
- extension=$1; shift; subst_list=$*
- ;;
- *)
- echo preserve: incorrect parameters
- exit 1
- ;;
- esac
- fn_root=`echo $fn | sed "s/[.]${extension}//g"`
- for tail in $subst_list ; do
- cfn=${fn_root}${tail}
- if [ $preserve = 'no' ] ; then
- ## file.preserve has to be in distribution
- if [ ! -f ${cfn}.preserve ] ; then
- echo "cant find file $cfn"
- exit 1
- fi
- cp -p ${cfn}.preserve ${cfn}
- if [ $extension = "x" -a $tail = ".h" ] ; then ## rpcgen header
- `echo $0 | sed 's/preserve$/move-if-change/1'` mv ${cfn} ${incdir}/${cfn}
- fi
- else # let's preserve file
- if [ -f ${cfn}.preserve -a `ls -t ${cfn}.preserve ${fn} | head -1` = ${cfn}.preserve ]; then
- echo "$cfn has already preserved"
- elif [ -f ${cfn} ] ; then
- cat ${cfn} | sed 's/#line.*$//g' > ${cfn}.preserve
- if [ $extension = "l" ] ; then
- echo "int yywrap() { return 1; }" >>${cfn}.preserve
- fi
- elif [ $extension = "x" -a $tail = ".h" ] ; then
- ## it's possible in the case of rpcgen generated header file
- fn_only=`echo $fn_root | sed "s/[^/]*[/]//g"`
- cat `find . -name ${fn_only}${tail} -print | head -1` | sed "s/#line.*$//g" >${cfn}.preserve
- else
- echo "can't preserve file $cfn"
- fi
- fi
- done