|
发表于 2015-10-30 12:44:46
|
显示全部楼层
- WAP(Dopra Linux) # cat customize.sh
% x; b5 G/ u: G" x3 [8 D - #! /bin/sh% J2 ~- u( u# b, L0 ~
1 c. F$ y/ p# M7 o- #set CTCOM, Unicom or mobily spec parameters% _3 k2 E! [( M( [& B
- #include bin and spec word
0 _! g1 Q( w4 b6 s' E: e - #include spec sn, common web username ssid password
; y1 h% h) W$ v6 h
6 ^# I: m5 T/ x/ s7 w/ e# {$ B. O- var_bin_ft_word=$(echo $1 | tr a-z A-Z)2 e) E- h1 }5 b: R! C
- var_cfg_ft_word=$(echo $2 | tr a-z A-Z)
' q" M( m' `9 `. o - var_input_para=$*( X3 [$ \+ w/ v% h" ^/ Z6 F$ y
- var_result=""
' f' V- h1 k- h( I8 D" Z
2 }5 H' E2 x; e8 t; d3 ~- y- # 通过cfgtool设置程序特征字和配置特征字,这个操作在装备资源校验完成后执行
$ L6 O2 {' b8 y5 ^( p - HW_Set_Feature_Word()3 C1 q, j! k2 u {7 P
- {
5 [" V1 l7 `) P P - var_bin_word=BoardInfo.BinFeatureWord M! _' M# _. ?' c) T
- var_cfg_word=BoardInfo.CfgFeatureWord
4 b# g0 V6 ~/ N' f, N; ~8 n! V. S/ r0 Z - 3 J0 E3 E1 _6 t( x0 y2 ]6 D2 \
- # 设置程序特征字,为脚本的第1个参数/ a/ m9 i; u1 N
- cfgtool set boardinfo $var_bin_word infoStr $var_bin_ft_word
; T( J) y9 B$ M - if [ 0 -ne $? ]. _$ d4 |' s0 Z& p' P
- then$ Z- O4 l) x. ^. M& ? L
- echo "Failed to set bin feature word!": K$ v {" P+ p8 O
- return 1
" v# x/ }0 O8 z9 ?7 h4 y* v, q - fi% n9 F. F, p! A8 q
- J. Y, O: J+ k% X- # 设置配置特征字,为脚本的第2个参数- K) P! N3 _3 \7 w6 _' q* X M: E
- cfgtool set boardinfo $var_cfg_word infoStr $var_cfg_ft_word4 L% l3 m# j( j4 @( A7 e
- if [ 0 -ne $? ]' U" J2 C* b7 i5 U
- then* a/ Z% \, z; e" R
- echo "Failed to set cfg feature word!"
% }5 ~8 |1 U2 h - return 16 L5 h: C1 f9 c
- fi
7 ~6 y+ w; b9 Y1 B' ^/ V3 Q L8 f: |( }
! a+ t" J! U X- o% \- return 01 h5 j2 v) S2 ?# H# |
- }" f+ ~( U9 |% q" E S2 W
# Q" f4 u d/ _- # 参数检测, x) h9 z8 z6 b% x* A
- HW_Customize_Check_Arg()
0 S% ^+ z. b2 h8 j. y. Y* e4 l - {
7 m7 r% \( {6 A+ q - if [ -z "$var_bin_ft_word" ] || [ -z "$var_cfg_ft_word" ]* r: ^5 x, x1 a
- then! z9 K* q U0 E% g# B
- echo "ERROR::The binfeature word and cfgword should not be null!"
. I3 Q( N) V& p W1 d a l - return 1
7 {! U& N$ t. b1 ^3 t. t$ f - fi' a0 z9 R" C! D) P) O8 c% S
T, q- Q' |( F, ?- return
! C* G- _2 u, p# V* W - }. U% W3 ]# K) Y& Y; `; r
- + ]- G1 o; |2 ~! F/ A
- # 资源检测, ^6 l. A8 j& P0 H/ R
- HW_Customize_Check_Resource()
$ w4 S" K# b t8 e! G - {0 [! R; h- b2 i5 ~$ D0 Y
- # 调用Customize进程进行装备资源的校验; G, R$ U& O3 x9 q2 @6 z% k
- Customize $var_input_para9 Z. Y- R% z3 A1 { i! r- [7 h" ~
- var_result=$?
; c& @+ M4 V. B9 j X) i0 o
. d1 ~. Q3 g* T9 Z- return* a5 e* H8 D* N# ^& i+ c! R6 y
- }, p2 ^% o/ o3 U6 R( \4 q8 [& E% x
- ( B; k% ]0 ]0 ]& M
- # 结果输出: O% `; k% H, [0 o: q
- HW_Customize_Print_Result()
0 s7 \- {. T- L" V0 u5 G( I - {
5 r, O) Q$ ?) J U2 E) O - # 根据不同的执行结果,返回不同的错误内容2 O L0 D U9 J( ] C% d1 v! r" l
- if [ 0 -eq $var_result ]
4 w" k# `" Z+ Y" ?( f: X - then
8 C: Q6 e9 m* b9 k3 Q/ o" W - HW_Set_Feature_Word
3 b$ i' |9 m2 `, k% X/ ^' R4 I - if [ ! $? == 0 ]6 R# P5 d# m Q- Z k* s
- then" S7 _6 y, J2 h& B" d3 N
- echo "ERROR::Failed to set Feature Word!"- k! S, a6 J% R4 o. @
- return 1! a+ T n3 I6 B6 E- P7 S
- fi# J2 `% P+ P1 p% Y: l
- return 0
, k, h3 E% |$ m0 }' \ - elif [ 1 -eq $var_result ]) ^5 x+ S- {( @; b! d- u
- then
4 Q4 \% q4 x; t* H, u - echo "ERROR::input para number is not enough!"! |; r& r+ |9 o, i
- return 1/ w- ~2 y; e+ U% [/ C1 [3 ^, P
- elif [ 2 -eq $var_result ]$ _1 d i7 Y2 v
- then
! P0 g# ?! q2 }( x7 P/ D - echo "ERROR::Updateflag file is not existed!"& r: l7 z" O# Q3 {
- return 10 E* G4 g$ j! c. d+ [. i
- elif [ 3 -eq $var_result ]
. Q; u# P6 h i: |" I3 F - then/ ?6 {& V! ^, n0 E, ?7 r, i
- echo "ERROR::config tar file is not existed!"
3 q* g! E3 C$ U5 S( q - return 1 `0 F% _$ w' O0 `2 z
- elif [ 4 -eq $var_result ]
: X" p6 y# T1 p% A( {' J - then
# z- e! g- `) p+ |) n - echo "ERROR::Null pointer!!"
/ h ?7 @& H/ a' ]$ j) Z - return 18 w2 c+ \9 B0 l& d" C* G
- elif [ 5 -eq $var_result ]& H) }$ K1 ]# c- h4 m' `* l
- then$ N, Y7 c8 l: M4 F
- echo "ERROR::XML parse fail!!"' j; \3 {% |0 N, }+ H& ^8 F
- return 1
2 L: G, S6 ~3 r( z1 f( ] - elif [ 6 -eq $var_result ]8 A, `# C- z7 M8 s/ V: V* `
- then, o" n1 w7 A# u" |9 B/ O \
- echo "ERROR::XML get node or attribute fail!"/ ^2 l P j3 j. L
- return 1
, j! H9 V7 v: \* @0 f9 \- e - elif [ 7 -eq $var_result ]
# I3 @8 r. w3 D, ^- n( j( ^$ w - then
+ p6 v) F. ]$ j8 s8 ~9 b - echo "ERROR::XML get relation node fail!", W% Q9 q- T. k9 I! I9 ]
- return 1' u2 A( z3 n9 J9 i( z: j* l$ j
- elif [ 8 -eq $var_result ]
1 B# |7 U9 f# K% ^! I6 i) d% Q" W6 w - then
0 n" H9 O5 S% r: }/ h( A4 x - echo "ERROR::Spec file is not existed!"
6 o: r6 d `* `6 q2 t4 |9 F$ K - return 1- \+ K& O m- z; \ [6 U; S8 D
- elif [ 9 -eq $var_result ]
0 `7 c* J3 k6 v4 G# m% H7 F - then" @* P! [( f) d
- echo "ERROR::Set bin word fail!"! J1 ~% j! }2 i
- return 1
8 ? F! O) ]! u) T0 t3 h4 k - elif [ 10 -eq $var_result ]. B1 z C- v7 {# I/ `# g
- then/ x; R: e8 M1 h# H I( T( A: x: U% N
- echo "ERROR::Set config word fail!"" z% |8 L, J q% L" E
- return 1
# ^2 }/ l/ ^, |$ O9 s% D8 d - elif [ 11 -eq $var_result ]
0 O* D6 E/ q! I& {6 P - then
" m, a3 T0 Y7 ^) Z) t: D - echo "ERROR::Uncompress tar fail!"
2 {" E- m9 I' P) q0 C y - return 1, H5 |1 s9 T# L7 v, P
- elif [ 12 -eq $var_result ]
3 ]8 G* Z" m, H! ^0 D - then2 v2 s3 G( ~9 {$ A0 c/ D$ ] b4 a
- echo "ERROR::Config file is not existed!"6 f* r0 `/ Z5 D6 X ]% W3 q
- return 1
, b4 o( A# x9 Y3 S* ? - elif [ 13 -eq $var_result ]# O7 |% y1 J% ?0 D! }& [% [1 X- F* ~
- then
, b) x& u7 ~4 H0 \3 U - echo "ERROR::Recover file is ont existed!". ~2 t+ w, w" ^
- return 1
7 a* K+ C' Q& {* \' v - elif [ 14 -eq $var_result ]
( D) A$ y) {9 |7 n - then
9 d2 ^( Z& i% z- N - echo "ERROR::Run script fail!"
/ B6 q; ~" j7 u' G, W% a/ I2 u - return 1
: d* |$ A- [3 ^2 K6 T& F - elif [ 15 -eq $var_result ]' i% v9 K6 k: [, I- y9 R$ A
- then1 e9 S0 C( t$ Q% m; m; P
- echo "ERROR::Create new recover config file fail!"
$ Y; Y: Q" I0 K3 h8 Q! A. }! s - return 1
$ b' N6 a/ u& J - elif [ 16 -eq $var_result ]
, }% ]$ d* Y" O! g' ?4 i - then3 }7 z* a! R* m6 ^6 V( x. x* {5 x! o
- echo "ERROR::Create old recover config file fail!"
0 o, Z! y3 n: h x" f$ _ - return 16 Q: ]9 f( }- m
- elif [ 17 -eq $var_result ]0 {( E- f( M$ [. v% `
- then
$ n# i# E2 ?* {; J! a - echo "ERROR::Copy spec default ctree fail!"
; J5 B7 X& k7 x/ b) w) f. h - return 1
; g i2 e* i9 D; v/ O5 U - else
, X0 Z; [1 X0 E; m: z' t0 S - echo "ERROR::customize fail!") g7 e( F3 |8 l; ^/ l8 [, @
- return 1
2 Y' U7 J; U1 ]; n2 c/ } - fi
2 H5 [' z3 q" p2 v - }
. L* {5 c Y, J$ J
! b! P) V# L1 L$ h. g- # 参数检测9 {' C4 w3 y) u) G
- HW_Customize_Check_Arg
# m( l6 {" d3 P6 _ - [ ! $? == 0 ] && exit 1( H C" X/ ]5 \' l
- 4 q: \0 t# o' u& T# @; Q5 p" E/ Q
- # 资源检测
7 g3 u' ^4 L% _( `& D# r1 W( E; z - HW_Customize_Check_Resource! K* f- R, |" h, Z. f' ?, ^! F3 |
- [ ! $? == 0 ] && exit 19 {3 [/ ?/ e" U7 ~2 m4 Q
- + C2 t& {/ y4 Y) J
- # 结果输出
" [, r H: z3 A9 s) ^% z, K2 a! Q - HW_Customize_Print_Result& _' X& b/ Z# s0 Z' m5 d* P
- [ ! $? == 0 ] && exit 1
* P2 s, K; C) X- ?# C2 t2 M8 p' t
& d: {# N3 D2 `! Y- R- sync
* ^& q6 c: l% P$ ` - echo "success!" && exit 0$ J( D% b( L( `( n$ i# ~" W- d
* _4 V t- W; I( g( l6 [- : s3 j* n7 Y+ x/ j" r
- WAP(Dopra Linux) #
复制代码 |
|