|
发表于 2015-10-30 12:44:46
|
显示全部楼层
- WAP(Dopra Linux) # cat customize.sh
9 k: D, j6 U& W+ r2 p. [# l' R - #! /bin/sh( H: @0 y( `( Y
- 3 h5 K; t, Y; ]' q
- #set CTCOM, Unicom or mobily spec parameters' B8 e$ M) j8 ~7 ^
- #include bin and spec word5 m9 K( |1 `6 f M, M9 ~: ?; s7 U
- #include spec sn, common web username ssid password6 E! P& `% ?% b: u, I
- ' P+ W0 s" f+ I4 E! s0 L4 d/ B# q8 b
- var_bin_ft_word=$(echo $1 | tr a-z A-Z)2 K" r, \. N! K. U+ E
- var_cfg_ft_word=$(echo $2 | tr a-z A-Z)
2 O& I$ l0 [7 F$ l3 Z9 c% V( c - var_input_para=$*
+ E* f! B3 L% S/ Q$ l5 d+ g( B( | - var_result=""
; l2 X a( ~- @' h: m2 g9 J - 8 u/ k% ~2 n" c* e9 Y. d
- # 通过cfgtool设置程序特征字和配置特征字,这个操作在装备资源校验完成后执行
7 C9 I) o& a9 ?: W+ o' p, f- N - HW_Set_Feature_Word()) U6 c# S$ T8 f
- {3 B3 Y7 x7 J, Z8 K" [. u* L8 V2 s0 v
- var_bin_word=BoardInfo.BinFeatureWord- J, D. t# ?) C
- var_cfg_word=BoardInfo.CfgFeatureWord
) m6 k. e$ e. }, G4 M- ?
: s5 Q$ h6 _4 r/ I! V+ I% W$ k4 M- # 设置程序特征字,为脚本的第1个参数
7 S z0 G, {' p3 \ - cfgtool set boardinfo $var_bin_word infoStr $var_bin_ft_word
" ?' P, a+ P7 d) X, M$ o f, B - if [ 0 -ne $? ]8 E1 `, S3 ^1 a9 t4 n0 ^
- then. ]+ E% J% E5 Q8 F. v/ j
- echo "Failed to set bin feature word!"
! s: u7 z% x& g2 k; ~- v - return 16 I9 M6 y3 ~% Z/ p0 S6 U
- fi
! L( x2 Z# x8 W+ c4 m; A* D1 e
6 @5 ^8 R6 d, U- # 设置配置特征字,为脚本的第2个参数8 N j' U8 j+ \6 z6 o! u
- cfgtool set boardinfo $var_cfg_word infoStr $var_cfg_ft_word; a8 H& N8 S6 j1 \/ S* J: [4 D7 F. H
- if [ 0 -ne $? ]3 d3 x. i3 r9 i6 j
- then1 d+ n ~3 ] O( c, ?1 ?
- echo "Failed to set cfg feature word!"
! R; ]& g' z/ X ]2 S- B - return 1
( o) J8 [6 @/ u; v1 _* |! I( V - fi+ K1 c- {, N9 T; H# c8 ?; _
- 1 |+ B$ j. i- P: S+ J, f
- return 0
+ p4 z1 I& _" q) x! ]# y - }
/ N8 Q7 \# t' K6 L - ; \, b0 i$ h6 S- Q6 L% N9 ?
- # 参数检测( D* p( {. `) p7 \' { E- q' P
- HW_Customize_Check_Arg()" H* j. A* J" y. `
- {% E5 T' n' P7 k; e" ]" G+ A
- if [ -z "$var_bin_ft_word" ] || [ -z "$var_cfg_ft_word" ]9 {! b( M3 B# ?: L. j
- then+ r5 a# S' `" _* n; d$ l
- echo "ERROR::The binfeature word and cfgword should not be null!"
% [) S1 n5 G x* @# B( X( i - return 1
) ^2 y- y0 p4 h1 b# L6 R - fi4 j) Z# h% G( i/ c
9 A M# ^' e$ ~% N- return: p. i, z; C9 W9 i' v
- }0 P8 }6 Q I) J
- 9 R: ^0 W, W' h/ E& W
- # 资源检测
5 w6 L) B! R, v% p! m6 H0 _ s- Y - HW_Customize_Check_Resource()
7 J! c6 ~) X! S' \ - {
; A5 k% G# f7 K; |" L; P9 |0 D3 ^ - # 调用Customize进程进行装备资源的校验
, h' _1 H2 ?3 n/ R - Customize $var_input_para
* N. i/ C; }# Y( r9 ] - var_result=$?/ q) E4 G2 f4 |2 m. i% _& t- N
- * g( P9 N. W) k& O/ j. x
- return
( b: v! y6 L9 l- o0 j2 V - }
, R/ |5 k( Y% r3 ~! b' I% ^
4 a* c# C0 [8 F( j C- # 结果输出5 B, U9 j8 D I# _2 s
- HW_Customize_Print_Result()
& U, w' J' Y3 P3 @+ F - {/ \4 d; J. F* e( E: r$ L
- # 根据不同的执行结果,返回不同的错误内容
& f3 L; z0 g# B* H. K - if [ 0 -eq $var_result ]
) F$ C0 H4 U# X! S- Y7 Y) b# M4 I - then7 A& L r& ]3 F$ ?8 d! j
- HW_Set_Feature_Word
5 e( f3 U! G! S - if [ ! $? == 0 ]: ^5 w+ [- Q9 j7 D
- then
5 a9 f7 W4 W0 K% p/ `% e7 }* u - echo "ERROR::Failed to set Feature Word!"# Q; D3 s: r+ q6 s3 m6 p
- return 1
4 u: }: E) b! N7 n: z - fi
" Q! E2 `& U: F5 _: c. T - return 0& S( b1 ~6 p/ A/ b$ m
- elif [ 1 -eq $var_result ]
+ y' O! O8 U' {8 U8 c9 @" H - then
* t' ^+ T& I4 c0 K( Z8 N - echo "ERROR::input para number is not enough!"9 p+ R5 s1 r' M# q7 y
- return 1. O# u4 r( T3 n* v! A# @+ s
- elif [ 2 -eq $var_result ]9 m% n, b8 _& [4 O- N ]
- then5 H! H1 N) Q+ g6 x3 J$ k' V
- echo "ERROR::Updateflag file is not existed!"
8 Z5 {8 H& N5 B" f2 h - return 1) q D! P4 Q3 N: y
- elif [ 3 -eq $var_result ]
3 K2 I! a s* I& [ - then- |: [/ I6 `: E( o( B
- echo "ERROR::config tar file is not existed!"
. j) N. n; i" k+ E8 T# w M - return 1
0 s# M% o. V) t9 \( z, P - elif [ 4 -eq $var_result ]
7 _% N8 C- O9 P) @- J7 C - then; c6 ~$ {0 }6 l2 Q) v
- echo "ERROR::Null pointer!!"! i' T X6 I7 _: a" e, D1 j
- return 12 F" n; D. N& t. @: D
- elif [ 5 -eq $var_result ]1 l7 W- S5 |' ^. U% A J+ c! Z" c& l
- then
7 D/ _2 H; I1 Q/ T - echo "ERROR::XML parse fail!!"! U9 p+ n6 o' F$ S5 e H
- return 1
2 X2 D' |' f. @7 T1 u2 A - elif [ 6 -eq $var_result ]
0 z, w5 I, L5 G5 V - then( `0 H5 n2 j8 L
- echo "ERROR::XML get node or attribute fail!"3 t* N3 Z# y; {7 F2 \" j
- return 1" m; i( }* i& v+ t
- elif [ 7 -eq $var_result ]
' p& U. q+ i2 o3 m g1 i - then
: X) B, |% a5 [1 m4 W# g7 _ - echo "ERROR::XML get relation node fail!"$ d6 G" T8 ?7 x% h* n% @0 {2 Z
- return 1
e/ a# E+ f: }" }8 @5 i6 E - elif [ 8 -eq $var_result ]
& r2 A7 C. _2 p6 u - then
+ B2 H# F% w8 D: x" q% N - echo "ERROR::Spec file is not existed!"$ T8 w& s' A' V- c; a0 M! O2 r3 H- m
- return 1
1 t- x1 K: z8 F - elif [ 9 -eq $var_result ]
% M; ] @2 T. d0 z$ J$ P( y - then
3 i$ w3 u! m2 \6 S5 H" ?2 V - echo "ERROR::Set bin word fail!"0 ^0 }* ?; } D( X& W. t
- return 1
) h2 E# K* x* e5 X$ s! X. E - elif [ 10 -eq $var_result ]
, L8 T7 H; c. w" H; L- i - then
Y& \( E: K9 `0 a2 k6 P - echo "ERROR::Set config word fail!"' \8 b& |, h. x8 P% w1 k5 @
- return 1
; Y3 a$ S& s% Z2 a: g7 |/ @# ? - elif [ 11 -eq $var_result ]$ Q1 i2 b7 j% O$ x; o
- then
, r5 F2 i1 L. @8 ^0 w% u - echo "ERROR::Uncompress tar fail!" Y( [. E! {5 A1 e3 Z
- return 1
0 x3 e/ L: i3 |6 Z1 T - elif [ 12 -eq $var_result ]
# \8 I9 \! j6 i1 o) v7 N% R - then: `5 \4 O& h; j8 H
- echo "ERROR::Config file is not existed!"
0 s! p; V* R9 r, v" a - return 1
0 f/ G6 [, l$ X# r$ [$ V6 P* C - elif [ 13 -eq $var_result ]
- y) N; Q6 S! D9 P0 z: [ \ - then
6 l# i, D; o3 o% W: B4 |+ z- \" V - echo "ERROR::Recover file is ont existed!"
% Y2 _: r7 M/ w7 B4 L2 z, R. d- n5 b - return 13 z' O# W- o8 A: I0 @) Q! o6 T8 B
- elif [ 14 -eq $var_result ], L* j D3 L! }3 X* ~5 L" T
- then
; {, A! C& D- n& _" a# S - echo "ERROR::Run script fail!"
4 b3 d+ H! M- s" _. S. I( @4 [ - return 1
& T, R( H! f5 w2 I) _ - elif [ 15 -eq $var_result ]
) ~6 Q1 `! x1 V7 y- D2 M3 B - then
7 o% `8 F* L6 S+ k5 h$ C" f7 C2 H, x - echo "ERROR::Create new recover config file fail!"8 q! p% Q% T9 b2 Y+ H: K
- return 17 q# r6 m0 q; `7 @
- elif [ 16 -eq $var_result ]: M9 m) @9 D5 m* b) U
- then
/ x/ \6 ?& ?, Q+ e8 R: d; } - echo "ERROR::Create old recover config file fail!"/ `6 t, o" U, ?7 n
- return 1" V( U2 @) j; e, a1 g8 t* x+ d3 H
- elif [ 17 -eq $var_result ]
4 e! G7 n7 [9 Y5 K/ S - then
. B1 Q; Y. l' \3 G- T - echo "ERROR::Copy spec default ctree fail!"
! q6 R! x1 w. R/ r( I/ O - return 1
7 B% r; l6 H. o2 {5 p4 _. N @% y - else
0 r! L, ]) J. H( m k - echo "ERROR::customize fail!"
2 q( T% S, O2 m% S( B - return 1
# p: d, C! E- E! R/ \- w$ J! ` - fi
! j$ C% E, u0 f- | - }
/ N" ~. s3 P( F$ k9 L; a: E - . H- i( D$ H. \: j- x
- # 参数检测
4 s1 l8 z/ c4 D; a: b. A - HW_Customize_Check_Arg
) { U! v5 z8 ^" T - [ ! $? == 0 ] && exit 1+ v6 i) N& {8 G. @
- / z* ?5 ]* T1 {& d" }
- # 资源检测$ q, s* ]3 ?6 y' X/ Z$ W0 M
- HW_Customize_Check_Resource
) P* ?/ e8 k" ? - [ ! $? == 0 ] && exit 1
! ~" v3 h* q9 n1 Z' U$ [" J9 M - 9 e8 r9 M7 ^/ _6 ~- n+ y
- # 结果输出
4 B. S, e/ C4 c* a { - HW_Customize_Print_Result
W5 c! u1 T, @8 ~ - [ ! $? == 0 ] && exit 1- e8 o9 v- ]1 `4 i
) d5 D2 A! b, R" p2 L$ D" a+ F+ r- sync6 s7 u/ K; }2 I3 j7 E+ g4 ]3 D; I/ P" p" n
- echo "success!" && exit 0
- f6 P1 ]- @& f9 b* \3 P4 Y3 m - 5 s& R8 K4 e x$ p% Q
- , t4 A7 S& S1 Y; a% U& f+ j
- WAP(Dopra Linux) #
复制代码 |
|