Hex Artifact Content

Artifact 0c4022467794024aaea7e7290e82ba56633bbb16:


0000: 23 21 20 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20  #! /usr/bin/env 
0010: 62 61 73 68 0a 0a 76 65 72 73 69 6f 6e 3d 22 24  bash..version="$
0020: 31 22 0a 75 72 6c 3d 22 24 32 22 0a 0a 69 66 20  1".url="$2"..if 
0030: 5b 20 2d 7a 20 22 24 7b 76 65 72 73 69 6f 6e 7d  [ -z "${version}
0040: 22 20 5d 3b 20 74 68 65 6e 0a 09 65 63 68 6f 20  " ]; then..echo 
0050: 27 75 73 61 67 65 3a 20 6d 61 6b 65 2d 73 6c 61  'usage: make-sla
0060: 63 6b 77 61 72 65 2d 70 61 63 6b 61 67 65 20 3c  ckware-package <
0070: 76 65 72 73 69 6f 6e 3e 20 5b 3c 75 72 6c 3e 5d  version> [<url>]
0080: 27 20 3e 26 32 0a 09 65 78 69 74 20 31 0a 66 69  ' >&2..exit 1.fi
0090: 0a 69 66 20 5b 20 2d 7a 20 22 24 7b 75 72 6c 7d  .if [ -z "${url}
00a0: 22 20 5d 3b 20 74 68 65 6e 0a 09 75 72 6c 3d 22  " ]; then..url="
00b0: 68 74 74 70 3a 2f 2f 72 6b 65 65 6e 65 2e 6f 72  http://rkeene.or
00c0: 67 2f 64 65 76 65 6c 2f 61 70 70 66 73 2f 61 70  g/devel/appfs/ap
00d0: 70 66 73 2d 24 7b 76 65 72 73 69 6f 6e 7d 2e 74  pfs-${version}.t
00e0: 61 72 2e 67 7a 22 0a 66 69 0a 0a 76 65 72 73 69  ar.gz".fi..versi
00f0: 6f 6e 5f 72 65 6c 65 61 73 65 3d 27 31 27 0a 70  on_release='1'.p
0100: 6c 61 74 66 6f 72 6d 3d 22 24 28 75 6e 61 6d 65  latform="$(uname
0110: 20 2d 6d 29 22 0a 6d 61 6b 65 5f 61 72 67 73 3d   -m)".make_args=
0120: 28 0a 09 70 72 65 66 69 78 3d 2f 75 73 72 0a 09  (..prefix=/usr..
0130: 73 62 69 6e 64 69 72 3d 2f 73 62 69 6e 0a 09 6d  sbindir=/sbin..m
0140: 61 6e 64 69 72 3d 2f 75 73 72 2f 6d 61 6e 0a 29  andir=/usr/man.)
0150: 0a 0a 69 66 20 5b 20 21 20 2d 66 20 27 2f 65 74  ..if [ ! -f '/et
0160: 63 2f 73 6c 61 63 6b 77 61 72 65 2d 76 65 72 73  c/slackware-vers
0170: 69 6f 6e 27 20 5d 3b 20 74 68 65 6e 0a 09 65 63  ion' ]; then..ec
0180: 68 6f 20 27 54 68 69 73 20 73 63 72 69 70 74 20  ho 'This script 
0190: 69 73 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 72  is meant to be r
01a0: 75 6e 20 6f 6e 20 61 20 53 6c 61 63 6b 77 61 72  un on a Slackwar
01b0: 65 20 73 79 73 74 65 6d 2e 27 20 3e 26 32 0a 0a  e system.' >&2..
01c0: 09 65 78 69 74 20 31 0a 66 69 0a 0a 69 66 20 5b  .exit 1.fi..if [
01d0: 20 2d 7a 20 22 24 7b 76 65 72 73 69 6f 6e 7d 22   -z "${version}"
01e0: 20 5d 3b 20 74 68 65 6e 0a 09 65 63 68 6f 20 27   ]; then..echo '
01f0: 55 73 61 67 65 3a 20 6d 61 6b 65 2d 73 6c 61 63  Usage: make-slac
0200: 6b 77 61 72 65 2d 70 61 63 6b 61 67 65 20 3c 76  kware-package <v
0210: 65 72 73 69 6f 6e 3e 27 20 3e 26 32 0a 0a 09 65  ersion>' >&2...e
0220: 78 69 74 20 31 0a 66 69 0a 0a 77 6f 72 6b 64 69  xit 1.fi..workdi
0230: 72 3d 22 24 7b 54 4d 50 44 49 52 3a 2d 2f 74 6d  r="${TMPDIR:-/tm
0240: 70 7d 2f 61 70 70 66 73 2d 73 6c 61 63 6b 77 61  p}/appfs-slackwa
0250: 72 65 2d 70 61 63 6b 61 67 65 2d 24 7b 76 65 72  re-package-${ver
0260: 73 69 6f 6e 7d 2d 24 24 24 7b 52 41 4e 44 4f 4d  sion}-$$${RANDOM
0270: 7d 24 7b 52 41 4e 44 4f 4d 7d 24 7b 52 41 4e 44  }${RANDOM}${RAND
0280: 4f 4d 7d 22 0a 70 61 63 6b 61 67 65 3d 22 61 70  OM}".package="ap
0290: 70 66 73 2d 24 7b 76 65 72 73 69 6f 6e 7d 2d 24  pfs-${version}-$
02a0: 7b 70 6c 61 74 66 6f 72 6d 7d 2d 24 7b 76 65 72  {platform}-${ver
02b0: 73 69 6f 6e 5f 72 65 6c 65 61 73 65 7d 2e 74 78  sion_release}.tx
02c0: 7a 22 0a 6d 6b 64 69 72 20 22 24 7b 77 6f 72 6b  z".mkdir "${work
02d0: 64 69 72 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a  dir}" || exit 1.
02e0: 0a 28 0a 09 50 41 54 48 3d 22 24 7b 50 41 54 48  .(..PATH="${PATH
02f0: 7d 3a 2f 73 62 69 6e 3a 2f 6f 70 74 2f 61 70 70  }:/sbin:/opt/app
0300: 66 73 2f 72 6b 65 65 6e 65 2e 6f 72 67 2f 74 61  fs/rkeene.org/ta
0310: 72 64 79 2f 70 6c 61 74 66 6f 72 6d 2f 6c 61 74  rdy/platform/lat
0320: 65 73 74 2f 62 69 6e 22 0a 0a 09 73 65 74 20 2d  est/bin"...set -
0330: 78 0a 0a 09 63 64 20 22 24 7b 77 6f 72 6b 64 69  x...cd "${workdi
0340: 72 7d 22 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09  r}" || exit 1...
0350: 69 6e 73 74 61 6c 6c 64 69 72 3d 22 24 28 70 77  installdir="$(pw
0360: 64 29 2f 69 6e 73 74 61 6c 6c 65 64 22 0a 0a 09  d)/installed"...
0370: 63 61 73 65 20 22 24 7b 75 72 6c 7d 22 20 69 6e  case "${url}" in
0380: 0a 09 09 2a 74 70 3a 2f 2f 2a 29 0a 09 09 09 77  ...*tp://*)....w
0390: 67 65 74 20 2d 4f 20 61 70 70 66 73 2e 74 61 72  get -O appfs.tar
03a0: 2e 67 7a 20 22 24 7b 75 72 6c 7d 22 0a 09 09 09  .gz "${url}"....
03b0: 3b 3b 0a 09 09 2a 29 0a 09 09 09 63 70 20 22 24  ;;...*)....cp "$
03c0: 7b 75 72 6c 7d 22 20 61 70 70 66 73 2e 74 61 72  {url}" appfs.tar
03d0: 2e 67 7a 0a 09 09 09 3b 3b 0a 09 65 73 61 63 0a  .gz....;;..esac.
03e0: 09 74 61 72 20 2d 78 66 20 61 70 70 66 73 2e 74  .tar -xf appfs.t
03f0: 61 72 2e 67 7a 20 7c 7c 20 65 78 69 74 20 31 0a  ar.gz || exit 1.
0400: 0a 09 63 64 20 22 61 70 70 66 73 2d 24 7b 76 65  ..cd "appfs-${ve
0410: 72 73 69 6f 6e 7d 22 20 7c 7c 20 65 78 69 74 20  rsion}" || exit 
0420: 31 0a 0a 09 6d 61 6b 65 20 22 24 7b 6d 61 6b 65  1...make "${make
0430: 5f 61 72 67 73 5b 40 5d 7d 22 20 7c 7c 20 65 78  _args[@]}" || ex
0440: 69 74 20 31 0a 09 6d 61 6b 65 20 22 24 7b 6d 61  it 1..make "${ma
0450: 6b 65 5f 61 72 67 73 5b 40 5d 7d 22 20 44 45 53  ke_args[@]}" DES
0460: 54 44 49 52 3d 22 24 7b 69 6e 73 74 61 6c 6c 64  TDIR="${installd
0470: 69 72 7d 22 20 69 6e 73 74 61 6c 6c 20 7c 7c 20  ir}" install || 
0480: 65 78 69 74 20 31 0a 0a 09 63 64 20 22 24 7b 69  exit 1...cd "${i
0490: 6e 73 74 61 6c 6c 64 69 72 7d 22 20 7c 7c 20 65  nstalldir}" || e
04a0: 78 69 74 20 31 0a 0a 09 6d 6b 64 69 72 20 69 6e  xit 1...mkdir in
04b0: 73 74 61 6c 6c 20 7c 7c 20 65 78 69 74 20 31 0a  stall || exit 1.
04c0: 09 63 61 74 20 3c 3c 20 5c 5f 45 4f 46 5f 20 3e  .cat << \_EOF_ >
04d0: 20 69 6e 73 74 61 6c 6c 2f 73 6c 61 63 6b 2d 64   install/slack-d
04e0: 65 73 63 20 7c 7c 20 65 78 69 74 20 31 0a 61 70  esc || exit 1.ap
04f0: 70 66 73 3a 20 61 70 70 66 73 20 28 41 70 70 20  pfs: appfs (App 
0500: 46 69 6c 65 73 79 73 74 65 6d 29 0a 61 70 70 66  Filesystem).appf
0510: 73 3a 0a 61 70 70 66 73 3a 20 41 70 70 46 53 20  s:.appfs: AppFS 
0520: 69 73 20 61 20 6d 61 6e 69 66 65 73 74 2d 62 61  is a manifest-ba
0530: 73 65 64 20 46 55 53 45 20 66 69 6c 65 73 79 73  sed FUSE filesys
0540: 74 65 6d 20 74 68 61 74 20 6c 61 7a 69 6c 79 20  tem that lazily 
0550: 66 65 74 63 68 65 73 20 66 69 6c 65 73 20 6f 76  fetches files ov
0560: 65 72 20 48 54 54 50 2e 0a 61 70 70 66 73 3a 20  er HTTP..appfs: 
0570: 49 74 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74  It is intended t
0580: 6f 20 62 65 20 61 20 75 6e 69 76 65 72 73 61 6c  o be a universal
0590: 20 70 61 63 6b 61 67 69 6e 67 20 66 6f 72 6d 61   packaging forma
05a0: 74 2e 0a 61 70 70 66 73 3a 0a 61 70 70 66 73 3a  t..appfs:.appfs:
05b0: 0a 61 70 70 66 73 3a 0a 61 70 70 66 73 3a 0a 61  .appfs:.appfs:.a
05c0: 70 70 66 73 3a 0a 61 70 70 66 73 3a 0a 61 70 70  ppfs:.appfs:.app
05d0: 66 73 3a 0a 5f 45 4f 46 5f 0a 0a 09 6d 61 6b 65  fs:._EOF_...make
05e0: 70 6b 67 20 2d 63 20 6e 20 2d 6c 20 79 20 22 2e  pkg -c n -l y ".
05f0: 2e 2f 24 7b 70 61 63 6b 61 67 65 7d 22 20 7c 7c  ./${package}" ||
0600: 20 65 78 69 74 20 31 0a 0a 09 69 66 20 5b 20 22   exit 1...if [ "
0610: 24 28 69 64 20 2d 75 29 22 20 21 3d 20 27 30 27  $(id -u)" != '0'
0620: 20 5d 3b 20 74 68 65 6e 0a 09 09 73 65 74 20 2d   ]; then...set -
0630: 6f 20 70 69 70 65 66 61 69 6c 0a 09 09 78 7a 20  o pipefail...xz 
0640: 2d 64 63 20 22 2e 2e 2f 24 7b 70 61 63 6b 61 67  -dc "../${packag
0650: 65 7d 22 20 7c 20 74 61 72 64 79 20 2d 55 73 65  e}" | tardy -Use
0660: 72 20 30 20 2d 47 72 6f 75 70 20 30 20 7c 20 78  r 0 -Group 0 | x
0670: 7a 20 2d 39 63 20 3e 20 22 2e 2e 2f 24 7b 70 61  z -9c > "../${pa
0680: 63 6b 61 67 65 7d 2e 6e 65 77 22 20 7c 7c 20 65  ckage}.new" || e
0690: 78 69 74 20 31 0a 09 09 6d 76 20 22 2e 2e 2f 24  xit 1...mv "../$
06a0: 7b 70 61 63 6b 61 67 65 7d 2e 6e 65 77 22 20 22  {package}.new" "
06b0: 2e 2e 2f 24 7b 70 61 63 6b 61 67 65 7d 22 20 7c  ../${package}" |
06c0: 7c 20 65 78 69 74 20 31 0a 09 66 69 0a 29 20 7c  | exit 1..fi.) |
06d0: 7c 20 65 78 69 74 20 31 0a 0a 6d 76 20 22 24 7b  | exit 1..mv "${
06e0: 77 6f 72 6b 64 69 72 7d 2f 24 7b 70 61 63 6b 61  workdir}/${packa
06f0: 67 65 7d 22 20 2e 0a 0a 72 6d 20 2d 72 66 20 22  ge}" ...rm -rf "
0700: 24 7b 77 6f 72 6b 64 69 72 7d 22 0a 0a 65 78 69  ${workdir}"..exi
0710: 74 20 30 0a                                      t 0.