各位大大好:+ t) l0 K& j" X9 [* z' g0 f" H
小弟執行nanosim時,卻無法跑出視窗來,有個錯誤可是我不清楚該如何解決?問題如下 ) O. O2 P$ a o. m _. _) l! C [: 113: 64: unexpected operator 6 D: g$ j7 W* S8 [$ O7 A& J/opt/EDA/nanosim/cur/linux/ns/bin//scripts/nanosim: 1: Syntax error: Unterminated quoted string" o) N1 \' j% G
有大大遇過這方面的問題或是指導我方向去解決, 謝謝. ( l+ r: Q: Q$ i" |) c我在猜可能是這個檔案內的文字需要修改 但不知道該如何修改?. `; o( v# E" U# n- [# s* o: _* {! E
以下為/opt/EDA/nanosim/cur/linux/ns/bin//scripts/nanosim 的檔案內容: , n; U4 G) n. U% D #!/bin/sh6 \' r: D# i! {3 d; ~
# 3 E0 u% }9 v- ^# Copyright (C) 2001 Synopsys INC8 K$ |' b! D( J, \
# EPIC Dynamic Simulation Wrapper (DSW) 9 ^/ e7 P0 {+ t! M; g: ~0 {#( V u) y2 w! d: J2 B; {; W# c
eval ${DBG_EPIC_WRAPPER:+"set -x"} 7 Z- @) \) s0 O4 V4 W+ H7 r( u: Y: W+ p3 v* ~4 D Z: B
if [ "$EPIC_WRAPPER_DVLP" = "" ]; then 9 m8 `! \( S, q/ d5 O TEMP_ARCH="$SES_ARCH"' Z2 P/ b6 N8 `+ p! r+ _' ~9 d
else ' W/ F% C& D7 ]& v TEMP_ARCH="$EPIC_ARCH" . R% ?1 J0 l# E- @0 S. k% R g2 U( ~fi# `: B3 Y3 ^0 R {9 a% b, I* b$ |* g
0 [3 X! ^, Q' P$ r- N* f/ Y3 K4 Bscan_for_hva_args()" n0 {8 D0 c& ~" b, B3 ^9 K
{ 1 f2 p9 c. e* ~- U& C7 s8 y /bin/rm -f hva.init 1>&26 R$ q# {" i8 i- h
while [ $# -gt 0 ]; do . b4 |5 X. g# h" c* U6 o. ~$ j, v( j case "$1" in! u# i2 ?# N& @! F6 }$ c- x) E
-vaf)3 u2 d( ?' B1 N, Z" q8 R+ k7 C( f, n
have_vaf_flag=1 : v; o% ?0 R( A1 z have_va_flag=0+ ?/ [4 J6 n8 v. Q7 k
shift;( C# \8 V. i R: f
continue;% s+ Y8 F+ I" P% T2 z/ Z5 U+ n9 o
;; N; V E0 U4 u. U2 }. c
-va)* [# G1 o5 g( Q
have_va_flag=1 8 X$ B- K3 h3 H( j1 e( e! f8 ~" N have_vaf_flag=0 % t6 P/ i% s0 _; o shift; ; k: l' n4 h6 ]0 `+ @/ s p2 w continue;4 L0 [# R5 R4 T; n
;; + ] Z) L5 X6 C2 G% q9 F -*)* S3 ~9 _2 J( G" I/ p0 [9 {0 Q
ARGV="$ARGV $1" R# A+ o$ A- }0 a have_va_flag=0 o) p9 s; x2 J/ X& P( }
have_vaf_flag=0, n4 r5 V# D1 V9 J
shift; 9 f: O; V/ w' I/ r8 r/ [3 W5 _ continue;' f4 R; O3 c% f0 h h, j7 n2 H; R
;;) j* f' @' j' ]4 t0 K! {: X
*) : X* M1 H; Z0 v+ _4 d D [ if [ x"$have_va_flag" = x"1" ] ; then 5 [& M, Z1 i4 ^; q- Q+ Z
VA_FILE="$VA_FILE $1"% J$ k1 V0 T9 Z' G
elif [ x"$have_vaf_flag" = x"1" ] ; then - t* g& \: I% i" U: p( o
X="`cat $1 | sed -e '/\;/d;`" - ]7 {/ G/ l7 k) K+ P5 k4 |: G for token in ${X}; do3 r" _# X6 N ?! K1 w
VA_FILE="$VA_FILE $token"- C' ?0 Y9 ` z
done 5 G9 K8 N0 n$ {) ?; M
else- [% l, c# R6 s& W+ ^% g
ARGV="$ARGV $1" 6 b% O; }# P# g fi. c2 _8 z2 e3 [, `+ ~
shift;9 T) N3 c5 X6 u0 ]6 s0 b1 M
;; 8 }( U" r5 e5 m( W. S6 l4 S# J esac ' `+ G) y' c0 N; C done+ ^5 q1 d9 Y+ Y3 d/ l* _6 G% }
. X, G! z2 W2 t( _" b if [ x"$VA_FILE" != x"" ] ; then & ^1 K& C) {$ } k+ j3 l
## /bin/echo " xxx ARGV $ARGV" . N; Q2 f% m( S; S /bin/echo "choose nanosim $ARGV ;" > hva.init & G& t+ n2 S6 d" D0 q echo vcs +ad=hva.init $VA_FILE -o simv+ V/ M5 a+ J* r0 T& R7 m% B
vcs +ad=hva.init $VA_FILE -o simv ) p" Z- O1 c% \( z0 P0 E' O/ ` exe_status=$?; \% J% E a5 f
if [ $exe_status != 100 ]; then ( i [- M7 d5 w$ \5 R3 I4 D) [. j /bin/echo ""( @$ L: h% H$ a
/bin/echo "ERROR: Execution of vcs exited with code $exe_status" 6 c1 J* N( S6 `2 ~# e3 Z2 T /bin/echo ""5 _* a1 t! t& ^8 V7 j
exit $exe_status9 o0 V2 W/ x1 I( s" F k {% b$ O
fi2 ?0 l" L! T( R: n( u
hva_files="-n simv.daidir/amsVD.ntl simv.daidir/amsWRAP.spi"; A4 I9 Q5 x! q
ARGV="$ARGV $hva_files" 2 \, E) }! {+ ?) _7 a' h fi & t7 g/ p, d8 G; L o}4 s0 T) a8 U- o& |8 l
#------------------------------------------------------------------------- + G* b b& y* `5 `7 }3 v 0 b# m2 g. k0 s2 G) X7 K+ Fcleanup()9 \: Y, J) o4 v; I6 x- V" x" _
{ e9 C& {. [- Q$ W$ `0 |) V
if [ -d "$rundir" ]; then" s1 E$ z+ A/ ^$ r
# On AIX, a .nfsXXX file is created if libModel.o is removed' Z( Y9 l9 _# S# N9 H
# so .epicrun is not removed because directory is not empty.% c3 {6 e7 K3 |1 D
# Solution is to remove it again if the first rm failed9 H% y3 X) F: a3 [2 B$ E# T4 v$ \. Z
# (rm -rf $rundir || rm -rf $rundir) 1> /dev/null 2>&1 $ ?: s; T3 J) ^5 b if [ "$EXTRA_CAPACITY" = "YES" ]; then 4 ~& `0 Z: W3 Q( `) E/ z5 H chmod u+x $rundir/rpcidfile2 b9 V0 c. e% E
$rundir/rpcidfile - b5 T$ |4 c- E6 L/ D: i rm $rundir/rpcidfile ) Z+ i3 s$ s6 J/ L+ u7 ]. @ fi 2 j9 [( l+ [2 Q- T, j( ?1 c- t rm -rf $rundir' w$ r3 h6 n* J' v6 d
# Z" E" D9 r' f* c& o" L #Due to NFS problem, we have to copy files needed to! I4 }; w% q0 @# T( _4 ~
#/tmp/<temporary directory>, then symlink's files" b0 w, b6 s. i3 P: A. Q! \9 l
#to the local temporary 'rundir'. This avoids the problem0 m( _1 h: o Z4 \4 b* K
#to remove 'rundir') S( n- f$ u3 E" O( w
if [ "$EPIC_ARCH" = "RS6000_AIX_4" -o "$EPIC_ARCH" = "RS6000_AIX_5" -o "$EPIC_ARCH" = "aix64" ]; then 2 q4 @6 z6 u. u- _: @. l1 ^ if [ -d "$tdir" ]; then; |8 f1 m/ _! M* f$ X
rm -rf $tdir: C8 g) a0 M" p2 E% C; `
fi 5 i+ ?$ N3 Q7 @# Z fi' ]( `, h- p) h( s0 B9 z8 @0 S( n# }
fi4 t/ t' e; G$ ^" }; o2 M( M
if [ ${exitstatus:-0} -eq $ld_err_code ]; then4 ^& p. T3 ]2 [. n- [
[ "$has_model" = "YES" ] && rm -f $cwd/libModel$suffix1 J; a# _6 V! \8 n- a
[ "$has_custom" = "YES" ] && rm -f $cwd/libCustom$suffix * A, C$ |* J3 m3 G0 H fi 3 z/ t7 L8 d' C% f [ -f "$EPIC_SCRIPT_MESSAGES_FILE" ] && rm -f $EPIC_SCRIPT_MESSAGES_FILE 1>&2 9 @6 {9 ]- j) v" } exit ${exitstatus:-0} / i) O4 d0 |0 R1 D+ f! X0 q$ O} " A: [$ S; ^, [" \, K3 r2 p8 S1 l/ N8 i4 q8 f
Exit() " d5 i9 H6 f4 g. F{ # n8 X5 ^4 x, t3 n- G exitstatus=$1 ' A8 j2 _% I [/ I exit $exitstatus + {' C t: s3 h$ |- ^3 d& `% D}, E4 }* J6 j3 R
. z* j6 _( g- l) Y# get_epicrc filename keyword 4 K- A% Q- l" X! Z) pget_epicrc() 8 Y% P- F& ]9 S6 s9 O L{ ' V/ `$ J( V7 r+ x$ N/ b$ F+ f [ -f $1 ] || exit 0: O3 j2 `5 O7 r1 ^4 T9 h3 Z
key="/^$cmd2:/{print \$3}"9 c0 R* q- M. c q% A
awk -F":" "$key" $1 - J( a5 o' ?; C9 a}& I+ P& K3 {5 s Z% d
$ b" @ _6 Z- s/ Q+ z
# ; U# B( c& d8 }& h4 f# c# set datasize limit to hardlimit/ S7 ^3 e/ G2 u5 v) P2 A3 m
# 1 ~5 ~& m, u4 c& n, q y( @0 o* w$ yset_data_limit()* o- W: z# H F7 Y6 X* R% `9 [
{ 3 Q4 r; j4 O1 F2 v# ?1 Q9 s$ z dbglimit=0* r! K7 i& `6 c A
hardlimit=`ulimit -Hd`- V+ @$ Y% e7 q; f9 b$ F. _
softlimit=`ulimit -d` ( J7 a' w; s3 e5 ] desiredlimit=3500000/ `7 n1 ]: i O% H' T/ L7 i6 W; K
hardisunlimited=0 . D, N5 M8 A6 M" y; v* e! @ softisunlimited=0: O t( ?; `) ^
is64=0 ) w( \8 k$ [- Y& p: l5 e( _9 e* b1 f/ o$ l3 q# ^2 Y
case "$EPIC_ARCH" in ) D* d# O/ m) t4 n2 ~$ I *SUN*64) * o& y( Y; s8 K [- N! d is64=1* T$ O! T3 ^: J
;; " ~; f9 E0 @1 h2 s amd64) 5 N G# t* F8 t is64=1) D" l+ Q/ o8 ]# ?5 y, V& B! C
;;1 }5 T: ~9 j0 Q8 |
x86sol64) : Z, p/ H5 s$ T9 v, E8 B is64=1: U0 V. ~# a n) _$ V6 Q+ F1 O
;;0 i/ T# l7 C- M8 K/ ~# l
aix64) 2 C7 b) e6 t M0 V is64=1 ) d/ V2 ~: y* }6 z ;; 6 ^3 y) L3 _4 O& }2 `- J suse64)6 q- f- p- F4 v9 S( S3 f$ R
is64=1; f" L( N$ x; y3 Y
;; % `! k& r) f- L! s# i0 v: I esac ; v. ]8 \* ?0 a, }! {& o; K3 G$ A9 k5 D* ?
if [ $dbglimit -eq 1 ]; then7 D# W7 O* j2 Z0 q" Y. H
echo hard $hardlimit soft $softlimit+ Q1 H4 \' J* d/ \
fi % j! E7 A0 ^: v, l% x$ ?8 \ 0 e" T; y# R5 e& k- g' Y0 S if [ x$softlimit = "xunlimited" ]; then8 h& q! q$ k) T% e; ?3 ~. `
softisunlimited=18 w- d; i; V$ ~2 K9 u1 L
fi0 I2 E- R# G# r* G
; d+ n$ |' _% x5 b7 ?( u7 o if [ x$hardlimit = "xunlimited" ]; then # m# X. }% D p) n- B hardisunlimited=1 / n5 B7 B1 P i+ A; U fi7 p7 x8 B: t, C% ~1 x4 H0 N
! ?$ {' J" G0 P # 64 bit machine should have bigger than 4G & \8 @% d! d& a8 _ if [ $is64 -eq 1 ]; then # W4 e/ {" ]( a( Q& r9 t: t desiredlimit=5000000 ) X1 C. G8 }- Y fi 6 F: \6 i6 n# p3 s6 g/ c% u; k$ V' ^5 h* }
if [ $hardisunlimited -eq 0 ]; then 6 ~& V7 k/ a8 R/ B8 Y- G j% C if [ $hardlimit -lt $desiredlimit ]; then; `( B6 Q3 J) T8 _" \
echo "WARNING: datasize hard limit $hardlimit K is too small."; N I1 L# s l; R7 j
fi / K1 n' ~3 k" H5 o- X. s fi& l9 o: U, l3 O- \
: d, p$ |6 ~6 _5 F' X% C if [ $hardlimit != $softlimit ]; then" X" a+ z! E# X4 R1 E5 x7 a9 a$ m( s. m: f
ulimit -Sd $hardlimit* z6 E% {5 U8 h7 R
# echo "WARNING: datasize limit is set to `ulimit -Sd`"8 e1 S, l$ C \
fi/ k l: B0 w! V. j$ G' I
, F7 g0 K1 X% D0 n* P8 Z$ |' H
if [ $dbglimit -eq 1 ]; then * R- c! B, ~7 ] [6 ?5 r/ W; w echo datasize hard limit: `ulimit -Hd`* X: ?' @% Q0 {4 ~, g
echo datasize soft limit: `ulimit -d`1 `/ K, K7 M e B% U8 w N
fi0 A! }% f1 T4 ^$ f* O: c% B) A
}: Q$ K+ V0 U0 ]/ e6 t: h& c( F- u \
# \' t. x' l- m; e* Q0 L9 Y
# 4 A9 h( e& v. b7 g3 q1 a# set stacksize limit to desired limit 5 I; R! R3 O8 { O#- J b3 e8 o5 `9 R. J# b$ [' g
set_stack_limit()5 ]/ p3 K4 x, |4 \
{: n1 d, z! z) ?; @( K. s2 E
dbglimit=0 3 [# b4 v8 k( s* Q- P! P hardlimit=`ulimit -Hs` % T$ d9 E1 E% p( r; U- z softlimit=`ulimit -s`" J, R: Q* p: y2 [9 ~% d3 V2 S; O9 u
desiredlimit=600003 r; s9 V0 E4 y3 q; Q p9 }/ Q$ W
hardisunlimited=0 5 R( [! [" Y6 ~2 A, w* B+ X softisunlimited=0 , a; @0 ?# j5 H3 _6 z2 m- b$ l is64=0# S, a: j& s$ ]' V( J1 d: A3 }7 E5 i
i ~0 f3 v, k5 t7 V
case "$EPIC_ARCH" in 5 C$ r! G: H0 \- X3 h5 d *SUN*64)* a @3 u6 k0 W/ C7 T* a
is64=1 / {) X' A! S3 R; f% u7 Y ;;9 G2 ?& a; B$ E- w4 e# L6 A
amd64)0 S' L1 v% }5 t
is64=1: B+ H4 A- }* C, n4 I3 F, J' r- b
;;4 p) G! z9 O7 |; X: W4 [
x86sol64) / G6 J) ?5 Z: S" y, ~ is64=1 1 G. o4 Z0 }6 G' v. G( n8 b% _! W0 u ;;8 z. b! F' V; N2 I
aix64)0 o% b( t3 R- C$ f! R/ W7 P
is64=1 & s3 z7 T: e1 F. j6 r8 \5 x7 Y ;;( f9 C/ {6 r4 w1 [
suse64) ! j7 n6 M/ j% \" s. [ is64=1 * H1 ]* b9 C+ D# i% z) ~, I4 Q ;; 3 x6 f0 H6 X0 w, C esac 7 G; c) a- g4 q: e8 b$ b8 T( R ( w9 u8 U) Q/ d- y! k1 Z* rif [ "$EPIC_WRAPPER_DVLP" = "" ]; then! y1 c% A- [; |' f1 h& v: E
if [ $is64 -eq 1 ]; then& L; e* F0 ]5 F6 `5 t# a
desiredlimit=200000$ Q1 i8 ^3 ~. m
fi 9 t4 J8 K: V3 @9 helse ' T2 M: ]0 l1 v. }$ r case "$EPIC_ARCH" in; V+ E( D& @, S/ A5 X
*SUN*64)3 ]9 P0 b# Z1 k
desiredlimit=200000 ) B) u: e8 ^% h) _ ;;) v1 c" E& t/ H5 @ L
esac2 N% L D! w2 ]% q5 u6 b
fi ' ~- h' J" O5 k( ]* r $ f+ M- E! X; u( l if [ $dbglimit -eq 1 ]; then & R) i) l* x( q& x8 G' L echo hard $hardlimit soft $softlimit$ G, \( B2 `" W( E! g+ V" {
fi; v! a! l0 y. {. F1 M
* n6 @- T/ `9 {" _ #stacksize can not be unlimited, pick smaller number # T8 _: X+ a' A z" G$ m . r) w5 F% J# {$ g# E( X, q' l H3 h stacklimit=$desiredlimit ; b: a. F) [( ?( M$ _% ?" u " C9 X" j( I4 |6 f% g+ ?8 u if [ x$hardlimit = "xunlimited" ]; then+ f( x p* @/ z+ M
hardisunlimited=1! c3 k* g" O0 J# Z
fi) x! P) u# B$ [0 V) H5 ^
, A$ g' i7 }1 ~8 j6 ?7 D% b0 G: N
if [ x$softlimit = "xunlimited" ]; then % M. E6 H. r, e* h& |# D! L; y: A softisunlimited=1, p6 Z: r- s3 e
fi/ O c8 Q$ O# J( Q g' x
* M2 P: r7 Q* E" Y; X if [ $hardisunlimited -eq 0 ]; then% b& k: P$ p5 g, ?
if [ $hardlimit -lt $desiredlimit ]; then3 T g L7 t* q6 _; D) z
echo "WARNING: stacksize hard limit $hardlimit K is too small." " `; k7 y7 q! m3 Z% R- X0 b6 ^ desiredlimit=$hardlimit* x8 O: I0 {3 }% A5 r: M y$ Q
stacklimit=$desiredlimit 1 E6 t3 }2 L. x, s fi / X" h) K$ _: C# W Q6 ?5 Z& | fi 1 U- S1 ]4 j1 u% [3 d' { j s4 v9 I) s9 j3 Y! V% h( _# N# S # desiredlimit is set to proper value (< hardlimit)1 m1 j* o% V3 ] U
' {( i7 l' J. ?. }2 k if [ $softisunlimited -eq 0 ]; then2 b8 R7 C( @3 F7 H: o; w
if [ $softlimit -gt $desiredlimit ]; then 2 s6 f; r0 Z# P4 e stacklimit=$softlimit, }2 S+ X/ }; \! y1 z
fi( ?& s9 c. O1 w2 S
fi 3 R1 ~1 e. V% _* s G; U 7 T) m) @. n4 f% u if [ $softlimit != $stacklimit ]; then " l" k: K7 M2 @4 T. m+ D# a6 [ ulimit -Ss $stacklimit + M0 O0 g; S/ M. ]' }, ]& D; R# echo "WARNING: stacksize limit is set to `ulimit -Ss`"0 x0 h! c& G4 V* k5 L* }+ _; l
fi, d8 H: N. X, q. ?3 x0 E1 H
# m; f! O5 ]) h# W, _
if [ $dbglimit -eq 1 ]; then2 i5 V3 i1 {& u. X, n5 ]
echo stacksize hard limit: `ulimit -Hs`* M/ R* _7 {# w# S3 v9 K9 {
echo stackize soft limit: `ulimit -s` # f" @% ~8 M' ^ fi, D5 g S8 D$ Q; r9 _' z
}- j _. o0 {2 s
! B1 H. ^. p. Y' r! c* hopen_epicscriptmessages() ) _' t& E3 F! L! ^# R$ P- ^# e) P{4 s- ?8 [% r2 @/ Y1 F
#generate temp ".epicscriptmessages" file based on pid ) N4 G' G" P( {! hEPIC_SCRIPT_MESSAGES_FILE="$EPIC_SCRIPT_MESSAGES_FILE"$$+ c* m d& P2 c6 S+ c4 d
if [ -f $EPIC_SCRIPT_MESSAGES_FILE ]! I8 u6 I. u9 T
then . P& d/ f$ u) J0 i/ F( V* P7 J
until [ ! -f $EPIC_SCRIPT_MESSAGES_FILE ] ( j( i- S# ~, P7 Z% R6 V% c) ] do. m3 q$ m$ |6 i" u1 y- _. Y4 T
EPIC_SCRIPT_MESSAGES_FILE="$EPIC_SCRIPT_MESSAGES_FILE"$$7 U1 \) q2 O( T3 ]$ l( b+ s6 w
done 5 A, K# N e( [fi , _ W0 s; y! f! U0 a4 p @4 ?$ [% P. e; b& i
export EPIC_SCRIPT_MESSAGES_FILE 8 z, [3 d k' [/ T}9 f C) T3 Y0 p6 h* _* B
+ L7 x% J3 T/ R4 L5 Y9 S7 f0 m, v, l m7 ?1 B$ Q& q% A
cmdname=`basename $0` |; m7 U# B& N" ~5 e* t- @postgres="n" $ r7 K, Q2 k% T: i; v4 v0 rostore="n" a" p7 _& j( x& ~ E4 G
gui="n" 8 ~- ?& T N5 C2 N9 ~# K! u ]$ qdatabaseOn="n" 0 [6 V; m" r, c, A/ T" cf_next=0( L7 m$ d, `. r. U2 D
f_option="" $ c) h0 Q, Y" t' Zo_next=0 7 E4 c; D0 a k% }; f! y7 po_option="" 4 M: \6 o! N6 u0 Z* tworkDir=""+ X( {" `4 Z9 J+ W
workDir_next=0: f' v$ y* p- w! C2 Y4 s% y
errFile="powrmill.err" $ C* }4 q. l4 b: t6 }! y' `- jwin32flags="" 6 Z3 _2 I1 I) fln_default="ln -s"' v, y, A0 Q' y4 D6 Z% r
- b9 R8 r; s- q* Uhar_hilo_file="" # r1 o, o" X. ?- H6 B Xhave_har_flag=0. m3 Z# y1 s. n+ O r, i' f
have_har_setup_flag=0' d, H$ g Q; D8 h0 |
is_special_har_run=03 i. W4 L" b7 y0 f$ B3 Y
har_ofile_prefix=""9 N% k0 z: ~2 n) q" g
7 N* Y( |% |- h2 V- X
have_va_flag=0, t8 c2 o ]+ K3 u
have_vaf_flag=0. R. s8 U6 Y6 F6 |& ?
VAF_FILE=""6 Q8 I# w$ \9 }& q2 P4 O
VA_FILE=""/ D. m% S5 N; }8 \
ARGV="" `, m( K. l" v, U: ]3 z6 S; T5 |. o/ k
ORIGINAL_COMMAND_LINE= % L/ @0 ^& a( V4 K. }7 c9 eLOOP_CTRL_FILE=".ns_ba_env" V1 w$ Z2 O9 VALTER_HK_FILE=".alter_hkf"( o: T- b4 M7 \' t' F6 W
ALTER_COUNT_FILE=".alter_count" 3 [% c2 [% v0 jMONTE_IMG_FILE=".monte_img_f" + _# h4 N/ F e/ s4 r" KMONTE_COUNT_FILE=".monte_count"/ \6 q+ l5 {6 W1 J, d- J6 |
MONTE_CFG_FILE=".monte_cfg"( H9 J0 o3 H3 e9 \! J$ q1 R% N
EPIC_SCRIPT_MESSAGES_FILE=".epicscriptmessages" 5 x" l: ?* g( g* p% N! ~ @5 _' e, Q3 E- A6 S- T& y( d A
open_epicscriptmessages $@9 E7 x3 o9 T- y6 l8 B
4 n7 K3 \9 N% s( q
scan_for_hva_args $@* {+ I! ^- \# V
7 f7 n! R7 l3 B* V7 `4 wscan_for_har_args()7 v h' O9 B7 S5 c) l0 }& s' \
{8 [) o/ k8 Y( T" R$ P9 e& T
while [ $# -gt 0 ]; do ! u) e* a) y: C- |- Y& X) k case "$1" in % b+ O& A; f' G -har)5 }. Y5 C+ _( Q5 e! D
have_har_flag=1, z) N! [, H, `* _) {2 Y
[ $# -gt 0 ] && shift* D4 t. l. v* J0 q! R8 k A6 H
if [ $# -gt 0 -a `expr "$1" : '-.*'` -eq 0 ]; then 8 [9 }4 d& t: m4 G4 n; V har_hilo_file=$13 a- n' c$ i2 y4 h$ t
shift / i ~$ t; O6 j6 I) ` fi ) M t4 o( z+ m1 v# r9 S if [ $# -gt 0 -a `expr "$1" : '-.*'` -eq 0 ]; then # m6 k& G& i1 J( n( e% [ echo "Too many arguments to -har flag. Only one hilo file allowed." 0 s' n1 c/ i' x5 h' s exit 1) @4 u9 b3 P4 d3 ?: }6 J
fi+ e3 F Z/ ^$ N5 g0 Q/ c# |4 g
break a2 @ {7 ?) D- C, T' z1 o
;; / C; P$ Q; Z9 E+ q' d2 }+ m -har_setup) / R/ g( v7 `# w$ J* ^+ G have_har_setup_flag=1 # t# T( z& m. ~ M break : L3 K5 L( N1 ^3 i5 w. t+ `8 o ;;$ g2 R# ^/ P8 }
*) 2 x' e3 }- G8 N. A shift 6 |: c, M- S" c7 ?' S/ y; P ;;4 Y& V- V! H) K5 ~6 U- {3 n
esac- G9 s8 J, P* m$ r" H3 u; u
done ( `, r' t" J6 T5 V' e3 j5 y}7 B5 s4 G4 F2 G, o1 b0 k! c: m
, v' N. h6 Y1 H- X! O. ?" Y
scan_for_har_args $@ - F4 |0 g( x7 S6 i+ N6 y9 [% w0 Z6 p+ Q/ b4 N' A+ L( C
for argv in $@ ! a2 _+ p% ]# P8 \do# `, H. g, Z6 C: Y' ~
ORIGINAL_COMMAND_LINE="$ORIGINAL_COMMAND_LINE $argv"0 Y8 v" V- n4 ~7 j1 j6 g- J
if [ $argv = "-gadb" ]; then 4 u6 E9 A. a9 y3 [: f+ c) Q1 [ databaseOn="y"5 [) Z6 s7 g4 k: ~
workDir_next=1+ I1 j8 c o# J! M4 X$ S1 N
elif [ $workDir_next -eq 1 ]; then: z0 b: S3 X1 P* J9 W3 [
workDir=$argv6 V" f) f v0 v+ [
workDir_next=0 8 W2 E" \. w% e0 A; e* s0 L% F0 r elif [ $argv = "-ga" ]; then 6 G3 A* t- p: W) w& J gui="y" 7 V' R6 t6 P- E% Y3 ^; J9 v3 d4 \& W elif [ $argv = "-f" ]; then 8 R6 Y& r/ R4 [9 R/ K f_next=1 # \% H" c8 L+ }: d" ? elif [ $f_next -eq 1 ]; then # e: g! `! y; F8 J* j* o3 m, \. V0 z f_option=$argv( n7 I% E8 x) \! b
f_next=0" g0 q0 v. p/ R9 M1 L k
elif [ $argv = "-o" ]; then; m. y$ I/ u. J# k5 q
o_next=1. q, I* I% B6 N
elif [ $o_next -eq 1 ]; then8 _* V& s! M- l% f9 T0 H
o_option=$argv + P. s' W" L( f% F" ?9 M o_next=0* D/ u1 b7 K+ ]0 K
fi b2 g8 x7 r: \, W+ V. i2 P8 c2 Ldone+ C3 v9 ^$ v- q4 A% R8 J
echo "Command line options: $ORIGINAL_COMMAND_LINE" > $EPIC_SCRIPT_MESSAGES_FILE # F( ?- O4 m1 T/ A2 e/ \% h
* H, Q9 @* L8 e/ N! w
if [ $databaseOn = "y" -o $gui = "y" ]; then * ?5 }0 i* x- a. t if [ $cmdname = "pathmill" ]; then1 c; X/ e1 W# K0 ?% k D6 l; F
if [ "$EPIC_ARCH" = "SUN4_SUNOS_5" -o "$EPIC_ARCH" = "SUN4_SUNOS_5_64" ]; then # y+ h: i' l, f) E8 G; M$ A8 ` ostore="y" 9 G% I1 M' e; i2 j0 W postgres="n" / c: I6 P7 @$ @& U* H( O( P8 n else( Z3 G( U2 \$ k% Y1 m6 Z
echo "athmill GUI is supported on Solaris platforms only" 1>&2 5 g) ?8 }5 D+ y! A$ U5 ~- N0 [1 L0 H$ R exit$ s7 z$ f7 r8 d/ L
fi 0 _! D0 }- c5 v& G- Z; r4 r4 Z; E else6 { L9 Y7 V( `8 y9 E! O
postgres="y"& N: Z% x/ F- b( H
ostore="n" ' ?7 Z# N* }, p# v, M- S% B8 u fi ' R! `' M# c* Dfi+ P0 [8 y4 t! ?2 Q
) X. w/ }; X" V$ {/ Qif [ $gui = "y" ]; then7 u) b4 T3 S3 G; P
if [ $cmdname = "powrmill" ]; then ! E& x& v/ h3 ^: ~9 h) d7 G pwga $@ 1 y& Z# {' ~) `7 M exit 4 s+ z$ F$ D; `. K0 B8 p fi# ]( D. ]. s7 E6 Y/ {( y# P' N
& T+ p! A n! `" M8 F if [ $cmdname = "pathmill" ]; then! O* w- U) }$ {- r; G1 o8 p
if [ $ostore = "y" ]; then $ |8 G( n! I- [% Y0 f ./pathfinder $@7 p8 `; `! b" T" J
exit [; z+ _- ?6 e( n0 R- b
elif [ $postgres = "y" ]; then4 C0 _$ }( `/ n- W; m: c
pmga $@ + P* _' w: h# R2 I, P exit ( ]) v* k- L& m7 F& N: n fi9 w9 G2 ]9 l2 x# D0 L( ~9 \
fi H6 A7 t6 h3 o+ H" f5 K9 zfi. Z4 g( s# [: [1 |6 m5 s" i# ]
0 d I3 E$ c% j/ d0 G% J. Z3 Yif [ $databaseOn = "y" ]; then- z- |3 E) Z' w% e7 [
if [ $ostore = "y" ]; then , q- C6 j1 o" W9 b if [ -z "$workDir" ]; then ) H) o2 c1 Y* g0 S/ Y, o9 L! N echo "Error: Missing argument for -gadb option"+ f* m1 F. b- p" y5 X) C
Exit 1 9 V) W6 p- H, C fi2 L! j% k7 p$ e; E9 v+ G0 k
fi ; |4 ~ t4 x6 _$ y7 R$ O5 ~1 @ if [ $postgres = "y" ]; then& Y* t+ _9 w' f' f
if [ -z "$workDir" ]; then7 M4 d1 I+ Q/ e: m3 d3 I1 P/ T) \
echo "Error: Missing argument for -gadb option"- H, V1 b" m0 Y, H* b
Exit 1 / b! E& o2 S5 {' n# t fi 5 {- \4 P% h* J4 U7 ]9 l/ v5 H fi % T& a9 A4 O; V# Q/ Ufi% ^; E7 L# [0 |" h7 O$ I
: ^; @6 Y7 O4 j2 w3 ~
if [ $postgres = "y" ]; then ( N1 o. U* f7 s" f8 b/ u2 q# J. a& q) Y7 I Y; c- r8 ]' i
if [ -r $EPIC_BIN/scripts/gui-init ]; then7 F" u8 [5 w0 x: Q. i; U- P& f
. $EPIC_BIN/scripts/gui-init $ H7 A! }% A6 G P elif [ -r $SES_ROOT/bin/scripts/gui-init ]; then & y8 g6 u. a6 a' G$ u# }% K8 h7 V4 ~ . $SES_ROOT/bin/scripts/gui-init4 k3 v& i0 N( q9 p9 z% v
else( q) u( O1 y, D$ [2 ?6 T
echo " ** Installation in \"$EPIC_HOME\" has been corrupted!" 1>&2 / {9 c8 _. Y: |4 ? echo " file bin/scripts/gui-init is missing." 1>&2 . t9 D" T$ t3 a4 { fi ( k0 O1 T( x, c8 P; ` U. P4 w8 [# q, H; S( p7 ~
workfile -tool $cmdname $@+ p0 E3 l' w. T# E) r
fi 7 O6 N3 j% s- G2 Q6 @, a$ }) e7 g1 `" V6 Q
if [ ! -z "$o_option" ]; then * d& A1 B& H. Z2 M2 L2 | errFile=${o_option}.err 6 u& b9 u, H' l5 N/ Y) Zelif [ ! -z "$f_option" ]; then ; j* O9 _. v( S: c if [ -d $f_option ]; then $ u7 e0 n6 G) ^! \, B% x errFile=${f_option}/powrmill.err 5 ]1 {9 k7 Q/ A2 J+ {) I: |( t$ C else errFile=${f_option}.err) p5 x, j/ |4 W* l
fi& w# I9 E, Z0 ?) j3 P; o
fi ' P" I9 J9 b1 l2 _+ i( U9 v# H 4 k/ `: ]" ~7 v! B# V* O * g6 w9 w# m' z( b9 D4 N; kif [ "$EPIC_ARCH" = "RS6000_AIX_4" -o "$EPIC_ARCH" = "RS6000_AIX_5" -o "$EPIC_ARCH" = "aix64" ]; then ) C$ _: O2 m6 e2 @4 I) d" E) p rundir=.epicrun' y* ~& G$ W, u6 O
else 8 p! s; D3 ]9 j8 ? rundir=.epicrun$$3 D x; u7 I ] C
fi# k8 }- { a9 E% B4 [5 t3 e# K; i