Megatest

Hex Artifact Content
Login

Artifact de6ec68c4a2ce6578d7e92a4c3f4d728db082afb:


0000: 23 21 2f 62 69 6e 2f 62 61 73 68 0a 0a 70 72 65  #!/bin/bash..pre
0010: 66 69 78 3d 24 31 0a 63 6d 64 3d 24 32 0a 74 61  fix=$1.cmd=$2.ta
0020: 72 67 65 74 3d 24 33 0a 0a 69 66 20 5b 20 22 24  rget=$3..if [ "$
0030: 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 22  LD_LIBRARY_PATH"
0040: 20 21 3d 20 22 22 20 5d 3b 74 68 65 6e 0a 20 20   != "" ];then.  
0050: 63 66 67 66 69 6c 65 3d 22 24 70 72 65 66 69 78  cfgfile="$prefix
0060: 2f 62 69 6e 2f 2e 24 28 6c 73 62 5f 72 65 6c 65  /bin/.$(lsb_rele
0070: 61 73 65 20 2d 73 72 29 2f 63 66 67 2e 73 68 22  ase -sr)/cfg.sh"
0080: 0a 20 20 65 63 68 6f 20 22 49 4e 46 4f 3a 20 55  .  echo "INFO: U
0090: 73 69 6e 67 20 4c 44 5f 4c 49 42 52 41 52 59 5f  sing LD_LIBRARY_
00a0: 50 41 54 48 3d 24 4c 44 5f 4c 49 42 52 41 52 59  PATH=$LD_LIBRARY
00b0: 5f 50 41 54 48 22 20 3e 26 32 0a 28 20 63 61 74  _PATH" >&2.( cat
00c0: 20 3c 3c 20 5f 5f 45 4f 46 0a 69 66 20 5b 20 22   << __EOF.if [ "
00d0: 5c 24 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54  \$LD_LIBRARY_PAT
00e0: 48 22 20 21 3d 20 22 22 20 5d 3b 74 68 65 6e 0a  H" != "" ];then.
00f0: 20 20 65 78 70 6f 72 74 20 4c 44 5f 4c 49 42 52    export LD_LIBR
0100: 41 52 59 5f 50 41 54 48 3d 24 4c 44 5f 4c 49 42  ARY_PATH=$LD_LIB
0110: 52 41 52 59 5f 50 41 54 48 3a 5c 24 4c 44 5f 4c  RARY_PATH:\$LD_L
0120: 49 42 52 41 52 59 5f 50 41 54 48 0a 65 6c 73 65  IBRARY_PATH.else
0130: 0a 20 20 65 78 70 6f 72 74 20 4c 44 5f 4c 49 42  .  export LD_LIB
0140: 52 41 52 59 5f 50 41 54 48 3d 24 4c 44 5f 4c 49  RARY_PATH=$LD_LI
0150: 42 52 41 52 59 5f 50 41 54 48 0a 66 69 0a 5f 5f  BRARY_PATH.fi.__
0160: 45 4f 46 0a 29 20 3e 20 24 63 66 67 66 69 6c 65  EOF.) > $cfgfile
0170: 0a 20 20 65 63 68 6f 20 0a 65 6c 73 65 0a 20 20  .  echo .else.  
0180: 65 63 68 6f 20 22 49 4e 46 4f 3a 20 4c 44 5f 4c  echo "INFO: LD_L
0190: 49 42 52 41 52 59 5f 50 41 54 48 20 6e 6f 74 20  IBRARY_PATH not 
01a0: 73 65 74 22 20 3e 26 32 0a 66 69 0a 0a 23 20 65  set" >&2.fi..# e
01b0: 63 68 6f 20 22 23 21 2f 62 69 6e 2f 62 61 73 68  cho "#!/bin/bash
01c0: 22 20 3e 20 24 74 61 72 67 65 74 0a 23 20 69 66  " > $target.# if
01d0: 20 5b 20 22 24 4c 44 5f 4c 49 42 52 41 52 59 5f   [ "$LD_LIBRARY_
01e0: 50 41 54 48 22 20 21 3d 20 22 22 20 5d 3b 74 68  PATH" != "" ];th
01f0: 65 6e 0a 23 20 20 20 65 63 68 6f 20 22 73 6f 75  en.#   echo "sou
0200: 72 63 65 20 24 70 72 65 66 69 78 2f 62 69 6e 2f  rce $prefix/bin/
0210: 2e 5c 24 28 6c 73 62 5f 72 65 6c 65 61 73 65 20  .\$(lsb_release 
0220: 2d 73 72 29 2f 63 66 67 2e 73 68 22 20 3e 3e 20  -sr)/cfg.sh" >> 
0230: 24 74 61 72 67 65 74 0a 23 20 66 69 0a 23 20 65  $target.# fi.# e
0240: 63 68 6f 20 22 65 78 65 63 20 24 70 72 65 66 69  cho "exec $prefi
0250: 78 2f 62 69 6e 2f 2e 5c 24 28 6c 73 62 5f 72 65  x/bin/.\$(lsb_re
0260: 6c 65 61 73 65 20 2d 73 72 29 2f 24 63 6d 64 20  lease -sr)/$cmd 
0270: 5c 22 5c 24 40 5c 22 22 20 3e 3e 20 24 74 61 72  \"\$@\"" >> $tar
0280: 67 65 74 0a 65 63 68 6f 20 22 23 21 2f 62 69 6e  get.echo "#!/bin
0290: 2f 62 61 73 68 22 20 3e 20 24 74 61 72 67 65 74  /bash" > $target
02a0: 0a 0a 69 66 20 5b 5b 20 24 63 6d 64 20 3d 7e 20  ..if [[ $cmd =~ 
02b0: 64 62 6f 61 72 64 20 5d 5d 3b 20 74 68 65 6e 0a  dboard ]]; then.
02c0: 20 20 20 20 63 61 74 20 3e 3e 20 24 74 61 72 67      cat >> $targ
02d0: 65 74 20 3c 3c 27 45 4f 46 27 0a 0a 23 20 64 69  et <<'EOF'..# di
02e0: 73 61 62 6c 65 20 69 66 20 6e 6f 74 20 72 75 6e  sable if not run
02f0: 6e 69 6e 67 20 6f 6e 20 68 6f 6d 65 68 6f 73 74  ning on homehost
0300: 0a 69 66 20 5b 5b 20 2d 65 20 2e 68 6f 6d 65 68  .if [[ -e .homeh
0310: 6f 73 74 20 5d 5d 3b 20 74 68 65 6e 0a 20 20 68  ost ]]; then.  h
0320: 6f 6d 65 68 6f 73 74 6e 61 6d 65 3d 24 28 20 68  omehostname=$( h
0330: 6f 73 74 20 60 63 61 74 20 2e 68 6f 6d 65 68 6f  ost `cat .homeho
0340: 73 74 60 20 7c 20 61 77 6b 20 27 7b 70 72 69 6e  st` | awk '{prin
0350: 74 20 24 4e 46 7d 27 20 7c 20 73 65 64 20 27 73  t $NF}' | sed 's
0360: 2f 5c 2e 24 2f 2f 27 20 29 0a 20 20 68 6f 73 74  /\.$//' ).  host
0370: 6e 61 6d 65 3d 24 28 20 68 6f 73 74 6e 61 6d 65  name=$( hostname
0380: 20 2d 66 20 29 0a 0a 20 20 69 66 20 5b 5b 20 21   -f )..  if [[ !
0390: 20 28 24 68 6f 6d 65 68 6f 73 74 6e 61 6d 65 20   ($homehostname 
03a0: 3d 3d 20 24 68 6f 73 74 6e 61 6d 65 29 20 5d 5d  == $hostname) ]]
03b0: 3b 20 74 68 65 6e 0a 20 20 20 20 65 63 68 6f 20  ; then.    echo 
03c0: 22 45 52 52 4f 52 3a 20 74 68 69 73 20 68 6f 73  "ERROR: this hos
03d0: 74 20 28 24 68 6f 73 74 6e 61 6d 65 29 20 69 73  t ($hostname) is
03e0: 20 6e 6f 74 20 74 68 65 20 68 6f 6d 65 68 6f 73   not the homehos
03f0: 74 20 28 24 68 6f 6d 65 68 6f 73 74 6e 61 6d 65  t ($homehostname
0400: 29 20 66 6f 72 20 74 68 69 73 20 6d 65 67 61 74  ) for this megat
0410: 65 73 74 20 72 75 6e 20 61 72 65 61 2e 20 20 43  est run area.  C
0420: 61 6e 6e 6f 74 20 73 74 61 72 74 20 64 61 73 68  annot start dash
0430: 62 6f 61 72 64 2e 22 0a 20 20 20 20 65 63 68 6f  board.".    echo
0440: 20 22 20 20 20 20 20 20 20 50 6c 65 61 73 65 20   "       Please 
0450: 6c 6f 67 20 69 6e 74 6f 20 68 6f 6d 65 68 6f 73  log into homehos
0460: 74 20 62 65 66 6f 72 65 20 6c 61 75 6e 63 68 69  t before launchi
0470: 6e 67 20 64 61 73 68 62 6f 61 72 64 2e 22 0a 20  ng dashboard.". 
0480: 20 20 20 65 78 69 74 20 31 0a 20 20 66 69 0a 66     exit 1.  fi.f
0490: 69 0a 0a 23 20 63 68 65 63 6b 20 74 68 61 74 20  i..# check that 
04a0: 24 44 49 53 50 4c 41 59 20 69 73 20 73 65 74 0a  $DISPLAY is set.
04b0: 69 66 20 5b 5b 20 2d 7a 20 24 44 49 53 50 4c 41  if [[ -z $DISPLA
04c0: 59 20 5d 5d 3b 20 74 68 65 6e 0a 20 20 20 65 63  Y ]]; then.   ec
04d0: 68 6f 20 27 45 52 52 4f 52 3a 20 24 44 49 53 50  ho 'ERROR: $DISP
04e0: 4c 41 59 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20  LAY environment 
04f0: 76 61 72 69 61 62 6c 65 20 69 73 20 6e 6f 74 20  variable is not 
0500: 73 65 74 3b 20 6d 65 67 61 74 65 73 74 20 64 61  set; megatest da
0510: 73 68 62 6f 61 72 64 20 72 65 71 75 69 72 65 73  shboard requires
0520: 20 58 20 64 69 73 70 6c 61 79 20 61 64 64 72 65   X display addre
0530: 73 73 20 74 6f 20 62 65 20 73 65 74 20 69 6e 20  ss to be set in 
0540: 24 44 49 53 50 4c 41 59 2e 27 0a 20 20 20 65 78  $DISPLAY.'.   ex
0550: 69 74 20 31 0a 66 69 0a 0a 23 20 63 68 65 63 6b  it 1.fi..# check
0560: 20 74 68 61 74 20 24 44 49 53 50 4c 41 59 20 69   that $DISPLAY i
0570: 73 20 70 72 6f 70 65 72 0a 69 66 20 5b 5b 20 2d  s proper.if [[ -
0580: 78 20 24 28 77 68 69 63 68 20 78 64 70 79 69 6e  x $(which xdpyin
0590: 66 6f 20 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 29  fo  2>/dev/null)
05a0: 20 5d 5d 3b 20 74 68 65 6e 0a 20 20 69 66 20 21   ]]; then.  if !
05b0: 20 78 64 70 79 69 6e 66 6f 20 2d 64 69 73 70 6c   xdpyinfo -displ
05c0: 61 79 20 22 24 44 49 53 50 4c 41 59 22 20 26 3e  ay "$DISPLAY" &>
05d0: 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a  /dev/null; then.
05e0: 20 20 20 20 65 63 68 6f 20 27 45 52 52 4f 52 3a      echo 'ERROR:
05f0: 20 6d 65 67 61 74 65 73 74 20 64 61 73 68 62 6f   megatest dashbo
0600: 61 72 64 20 63 61 6e 6e 6f 74 20 6f 70 65 6e 20  ard cannot open 
0610: 64 69 73 70 6c 61 79 20 22 27 24 44 49 53 50 4c  display "'$DISPL
0620: 41 59 27 22 2e 20 20 50 6c 65 61 73 65 20 63 68  AY'".  Please ch
0630: 65 63 6b 20 24 44 49 53 50 4c 41 59 20 65 6e 76  eck $DISPLAY env
0640: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
0650: 65 2e 27 0a 20 20 20 20 65 78 69 74 20 31 0a 20  e.'.    exit 1. 
0660: 20 66 69 0a 66 69 0a 45 4f 46 0a 0a 66 69 0a 0a   fi.fi.EOF..fi..
0670: 65 63 68 6f 20 22 6c 73 62 72 3d 5c 24 28 6c 73  echo "lsbr=\$(ls
0680: 62 5f 72 65 6c 65 61 73 65 20 2d 73 72 29 22 20  b_release -sr)" 
0690: 3e 3e 20 24 74 61 72 67 65 74 0a 65 63 68 6f 20  >> $target.echo 
06a0: 22 69 66 20 5b 5b 20 2d 65 20 5c 24 6c 73 62 72  "if [[ -e \$lsbr
06b0: 20 5d 5d 3b 74 68 65 6e 20 73 6f 75 72 63 65 20   ]];then source 
06c0: 5c 24 6c 73 62 72 3b 66 69 22 20 3e 3e 20 24 74  \$lsbr;fi" >> $t
06d0: 61 72 67 65 74 0a 65 63 68 6f 20 22 65 78 65 63  arget.echo "exec
06e0: 20 24 70 72 65 66 69 78 2f 62 69 6e 2f 2e 5c 24   $prefix/bin/.\$
06f0: 6c 73 62 72 2f 24 63 6d 64 20 5c 22 5c 24 40 5c  lsbr/$cmd \"\$@\
0700: 22 22 20 3e 3e 20 24 74 61 72 67 65 74 0a        "" >> $target.