Hex Artifact Content

Artifact 8df8afa355a7a648809382afd9bc7cacaa4f805e:


0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 4f 55  #! /bin/bash..OU
0010: 54 46 49 4c 45 3d 22 24 31 22 0a 50 4b 47 3d 22  TFILE="$1".PKG="
0020: 24 32 22 0a 50 4b 47 56 45 52 3d 22 24 33 22 0a  $2".PKGVER="$3".
0030: 53 52 43 55 52 4c 3d 22 24 34 22 0a 50 4c 41 54  SRCURL="$4".PLAT
0040: 46 4f 52 4d 3d 22 24 35 22 0a 52 45 51 53 3d 22  FORM="$5".REQS="
0050: 24 36 22 0a 44 45 53 43 3d 22 24 37 22 0a 54 4d  $6".DESC="$7".TM
0060: 50 46 49 4c 45 3d 22 24 7b 54 4d 50 44 49 52 3a  PFILE="${TMPDIR:
0070: 2d 2f 74 6d 70 7d 2f 72 65 71 66 69 6c 65 2d 24  -/tmp}/reqfile-$
0080: 24 24 7b 52 41 4e 44 4f 4d 7d 24 7b 52 41 4e 44  $${RANDOM}${RAND
0090: 4f 4d 7d 24 7b 52 41 4e 44 4f 4d 7d 22 0a 65 78  OM}${RANDOM}".ex
00a0: 70 6f 72 74 20 4f 55 54 46 49 4c 45 20 50 4b 47  port OUTFILE PKG
00b0: 20 50 4b 47 56 45 52 20 53 52 43 55 52 4c 20 50   PKGVER SRCURL P
00c0: 4c 41 54 46 4f 52 4d 20 52 45 51 53 20 44 45 53  LATFORM REQS DES
00d0: 43 20 54 4d 50 46 49 4c 45 0a 0a 56 41 4c 49 44  C TMPFILE..VALID
00e0: 53 59 4e 54 41 58 3d 31 0a 69 66 20 5b 20 2d 7a  SYNTAX=1.if [ -z
00f0: 20 22 24 7b 4f 55 54 46 49 4c 45 7d 22 20 5d 3b   "${OUTFILE}" ];
0100: 20 74 68 65 6e 0a 09 65 63 68 6f 20 27 45 52 52   then..echo 'ERR
0110: 4f 52 3a 20 4f 75 74 70 75 74 20 6e 6f 74 20 73  OR: Output not s
0120: 70 65 63 69 66 69 65 64 27 20 3e 26 32 0a 09 56  pecified' >&2..V
0130: 41 4c 49 44 53 59 4e 54 41 58 3d 30 0a 66 69 0a  ALIDSYNTAX=0.fi.
0140: 69 66 20 5b 20 2d 7a 20 22 24 7b 50 4b 47 7d 22  if [ -z "${PKG}"
0150: 20 5d 3b 20 74 68 65 6e 0a 09 65 63 68 6f 20 27   ]; then..echo '
0160: 45 52 52 4f 52 3a 20 50 61 63 6b 61 67 65 20 6e  ERROR: Package n
0170: 6f 74 20 73 70 65 63 69 66 69 65 64 27 20 3e 26  ot specified' >&
0180: 32 0a 09 56 41 4c 49 44 53 59 4e 54 41 58 3d 30  2..VALIDSYNTAX=0
0190: 0a 66 69 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 50  .fi.if [ -z "${P
01a0: 4b 47 56 45 52 7d 22 20 5d 3b 20 74 68 65 6e 0a  KGVER}" ]; then.
01b0: 09 65 63 68 6f 20 27 45 52 52 4f 52 3a 20 50 61  .echo 'ERROR: Pa
01c0: 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 20 6e 6f  ckage version no
01d0: 74 20 73 70 65 63 69 66 69 65 64 27 20 3e 26 32  t specified' >&2
01e0: 0a 09 56 41 4c 49 44 53 59 4e 54 41 58 3d 30 0a  ..VALIDSYNTAX=0.
01f0: 66 69 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 50 4c  fi.if [ -z "${PL
0200: 41 54 46 4f 52 4d 7d 22 20 5d 3b 20 74 68 65 6e  ATFORM}" ]; then
0210: 0a 09 65 63 68 6f 20 27 45 52 52 4f 52 3a 20 50  ..echo 'ERROR: P
0220: 6c 61 74 66 6f 72 6d 20 6e 6f 74 20 73 70 65 63  latform not spec
0230: 69 66 69 65 64 27 20 3e 26 32 0a 09 56 41 4c 49  ified' >&2..VALI
0240: 44 53 59 4e 54 41 58 3d 30 0a 66 69 0a 69 66 20  DSYNTAX=0.fi.if 
0250: 5b 20 2d 7a 20 22 24 7b 44 45 53 43 7d 22 20 5d  [ -z "${DESC}" ]
0260: 3b 20 74 68 65 6e 0a 09 65 63 68 6f 20 27 45 52  ; then..echo 'ER
0270: 52 4f 52 3a 20 44 65 73 63 72 69 70 74 69 6f 6e  ROR: Description
0280: 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 27 20   not specified' 
0290: 3e 26 32 0a 09 56 41 4c 49 44 53 59 4e 54 41 58  >&2..VALIDSYNTAX
02a0: 3d 30 0a 66 69 0a 69 66 20 5b 20 22 24 7b 56 41  =0.fi.if [ "${VA
02b0: 4c 49 44 53 59 4e 54 41 58 7d 22 20 3d 20 22 30  LIDSYNTAX}" = "0
02c0: 22 20 5d 3b 20 74 68 65 6e 0a 09 65 63 68 6f 20  " ]; then..echo 
02d0: 27 55 73 61 67 65 3a 20 63 72 65 61 74 65 5f 74  'Usage: create_t
02e0: 65 61 70 6f 74 20 3c 6f 75 74 70 75 74 3e 20 3c  eapot <output> <
02f0: 70 6b 67 3e 20 3c 70 6b 67 76 65 72 3e 20 3c 73  pkg> <pkgver> <s
0300: 72 63 75 72 6c 3e 20 3c 70 6c 61 74 66 6f 72 6d  rcurl> <platform
0310: 3e 20 3c 72 65 71 73 3e 20 3c 64 65 73 63 3e 27  > <reqs> <desc>'
0320: 20 3e 26 32 0a 09 65 78 69 74 20 31 0a 66 69 0a   >&2..exit 1.fi.
0330: 0a 4f 55 54 53 48 4f 52 54 3d 24 28 65 63 68 6f  .OUTSHORT=$(echo
0340: 20 22 24 7b 4f 55 54 46 49 4c 45 7d 22 20 7c 20   "${OUTFILE}" | 
0350: 73 65 64 20 27 73 40 5e 2e 2a 2f 40 40 27 29 0a  sed 's@^.*/@@').
0360: 54 45 58 54 46 49 4c 45 3d 30 0a 69 66 20 5b 20  TEXTFILE=0.if [ 
0370: 22 24 7b 4f 55 54 53 48 4f 52 54 7d 22 20 3d 20  "${OUTSHORT}" = 
0380: 22 74 65 61 70 6f 74 2e 74 78 74 22 20 5d 3b 20  "teapot.txt" ]; 
0390: 74 68 65 6e 0a 09 54 45 58 54 46 49 4c 45 3d 31  then..TEXTFILE=1
03a0: 0a 66 69 0a 69 66 20 5b 20 21 20 2d 65 20 22 24  .fi.if [ ! -e "$
03b0: 7b 4f 55 54 46 49 4c 45 7d 22 20 5d 3b 20 74 68  {OUTFILE}" ]; th
03c0: 65 6e 0a 09 54 45 58 54 46 49 4c 45 3d 31 0a 66  en..TEXTFILE=1.f
03d0: 69 0a 0a 72 6d 20 2d 66 20 22 24 7b 54 4d 50 46  i..rm -f "${TMPF
03e0: 49 4c 45 7d 22 0a 63 61 74 20 3c 3c 20 5f 5f 45  ILE}".cat << __E
03f0: 4f 46 5f 5f 20 3e 20 22 24 7b 54 4d 50 46 49 4c  OF__ > "${TMPFIL
0400: 45 7d 22 0a 50 61 63 6b 61 67 65 20 24 7b 50 4b  E}".Package ${PK
0410: 47 7d 20 24 7b 50 4b 47 56 45 52 7d 0a 4d 65 74  G} ${PKGVER}.Met
0420: 61 20 70 6c 61 74 66 6f 72 6d 20 20 20 20 20 20  a platform      
0430: 20 20 20 20 20 24 7b 50 4c 41 54 46 4f 52 4d 7d       ${PLATFORM}
0440: 0a 4d 65 74 61 20 72 73 6b 3a 3a 62 75 69 6c 64  .Meta rsk::build
0450: 3a 3a 64 61 74 65 20 20 20 24 28 64 61 74 65 20  ::date   $(date 
0460: 2b 25 59 2d 25 6d 2d 25 64 29 0a 4d 65 74 61 20  +%Y-%m-%d).Meta 
0470: 64 65 73 63 72 69 70 74 69 6f 6e 20 20 20 20 20  description     
0480: 20 20 20 24 7b 44 45 53 43 7d 0a 5f 5f 45 4f 46     ${DESC}.__EOF
0490: 5f 5f 0a 65 63 68 6f 20 22 24 7b 52 45 51 53 7d  __.echo "${REQS}
04a0: 22 20 7c 20 74 72 20 27 2c 27 20 22 5c 6e 22 20  " | tr ',' "\n" 
04b0: 7c 20 77 68 69 6c 65 20 72 65 61 64 20 72 65 71  | while read req
04c0: 3b 20 64 6f 0a 09 72 65 71 3d 22 24 28 65 63 68  ; do..req="$(ech
04d0: 6f 20 22 24 7b 72 65 71 7d 22 20 7c 20 73 65 64  o "${req}" | sed
04e0: 20 27 73 40 5e 20 2a 40 40 3b 73 40 20 2a 24 40   's@^ *@@;s@ *$@
04f0: 40 27 29 22 0a 09 69 66 20 5b 20 2d 7a 20 22 24  @')"..if [ -z "$
0500: 7b 72 65 71 7d 22 20 5d 3b 20 74 68 65 6e 0a 09  {req}" ]; then..
0510: 09 63 6f 6e 74 69 6e 75 65 0a 09 66 69 0a 0a 09  .continue..fi...
0520: 69 66 20 65 63 68 6f 20 22 24 7b 72 65 71 7d 22  if echo "${req}"
0530: 20 7c 20 67 72 65 70 20 27 20 27 20 3e 2f 64 65   | grep ' ' >/de
0540: 76 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 72  v/null; then...r
0550: 65 71 3d 22 7b 24 7b 72 65 71 7d 7d 22 0a 09 66  eq="{${req}}"..f
0560: 69 0a 0a 09 65 63 68 6f 20 22 4d 65 74 61 20 72  i...echo "Meta r
0570: 65 71 75 69 72 65 20 20 20 20 20 20 20 20 20 20  equire          
0580: 20 20 24 7b 72 65 71 7d 22 0a 64 6f 6e 65 20 7c    ${req}".done |
0590: 20 73 6f 72 74 20 2d 75 20 3e 3e 20 22 24 7b 54   sort -u >> "${T
05a0: 4d 50 46 49 4c 45 7d 22 0a 0a 69 66 20 5b 20 22  MPFILE}"..if [ "
05b0: 24 7b 54 45 58 54 46 49 4c 45 7d 22 20 3d 20 22  ${TEXTFILE}" = "
05c0: 31 22 20 5d 3b 20 74 68 65 6e 0a 09 63 61 74 20  1" ]; then..cat 
05d0: 22 24 7b 54 4d 50 46 49 4c 45 7d 22 20 3e 20 22  "${TMPFILE}" > "
05e0: 24 7b 4f 55 54 46 49 4c 45 7d 22 0a 65 6c 73 65  ${OUTFILE}".else
05f0: 0a 09 28 0a 09 09 68 65 61 64 20 2d 31 20 22 24  ..(...head -1 "$
0600: 7b 4f 55 54 46 49 4c 45 7d 22 0a 09 09 65 63 68  {OUTFILE}"...ech
0610: 6f 20 27 27 0a 09 09 65 63 68 6f 20 27 23 20 40  o ''...echo '# @
0620: 40 20 4d 65 74 61 20 42 65 67 69 6e 27 0a 09 09  @ Meta Begin'...
0630: 73 65 64 20 27 73 40 5e 40 23 20 40 27 20 22 24  sed 's@^@# @' "$
0640: 7b 54 4d 50 46 49 4c 45 7d 22 0a 09 09 65 63 68  {TMPFILE}"...ech
0650: 6f 20 27 23 20 40 40 20 4d 65 74 61 20 45 6e 64  o '# @@ Meta End
0660: 27 0a 09 09 65 63 68 6f 20 27 27 0a 09 09 74 61  '...echo ''...ta
0670: 69 6c 20 2b 32 20 22 24 7b 4f 55 54 46 49 4c 45  il +2 "${OUTFILE
0680: 7d 22 0a 09 29 20 3e 20 22 24 7b 4f 55 54 46 49  }"..) > "${OUTFI
0690: 4c 45 7d 2e 6e 65 77 22 0a 09 63 61 74 20 22 24  LE}.new"..cat "$
06a0: 7b 4f 55 54 46 49 4c 45 7d 2e 6e 65 77 22 20 3e  {OUTFILE}.new" >
06b0: 20 22 24 7b 4f 55 54 46 49 4c 45 7d 22 0a 09 72   "${OUTFILE}"..r
06c0: 6d 20 2d 66 20 22 24 7b 4f 55 54 46 49 4c 45 7d  m -f "${OUTFILE}
06d0: 2e 6e 65 77 22 0a 66 69 0a 0a 72 6d 20 2d 66 20  .new".fi..rm -f 
06e0: 22 24 7b 54 4d 50 46 49 4c 45 7d 22 0a           "${TMPFILE}".