Hex Artifact Content

Artifact 35b476a0b0b5beb4fb163cc063cbbe639e7e86b4:


0000: 41 70 70 46 53 0a 3d 3d 3d 3d 3d 0a 49 74 27 73  AppFS.=====.It's
0010: 20 73 6f 72 74 20 6f 66 20 6c 69 6b 65 20 4c 61   sort of like La
0020: 7a 79 46 53 2e 0a 0a 55 73 61 67 65 0a 2d 2d 2d  zyFS...Usage.---
0030: 2d 2d 0a 52 75 6e 3a 0a 09 31 2e 20 23 20 6d 6b  --.Run:..1. # mk
0040: 64 69 72 20 2f 74 6d 70 2f 61 70 70 66 73 2d 63  dir /tmp/appfs-c
0050: 61 63 68 65 20 2f 6f 70 74 2f 61 70 70 66 73 0a  ache /opt/appfs.
0060: 09 32 2e 20 23 20 61 70 70 66 73 64 20 2f 6f 70  .2. # appfsd /op
0070: 74 2f 61 70 70 66 73 0a 0a 0a 50 61 74 68 73 0a  t/appfs...Paths.
0080: 2d 2d 2d 2d 2d 0a 20 20 20 20 41 70 70 46 53 20  -----.    AppFS 
0090: 73 68 6f 75 6c 64 20 6e 6f 72 6d 61 6c 6c 79 20  should normally 
00a0: 62 65 20 6d 6f 75 6e 74 65 64 20 6f 6e 20 22 2f  be mounted on "/
00b0: 6f 70 74 2f 61 70 70 66 73 22 2e 0a 0a 20 20 20  opt/appfs"...   
00c0: 20 2f 6f 70 74 2f 61 70 70 66 73 2f 68 6f 73 74   /opt/appfs/host
00d0: 6e 61 6d 65 0a 20 20 20 20 09 46 65 74 63 68 65  name.    .Fetche
00e0: 73 3a 20 68 74 74 70 3a 2f 2f 68 6f 73 74 6e 61  s: http://hostna
00f0: 6d 65 2f 61 70 70 66 73 2f 69 6e 64 65 78 0a 20  me/appfs/index. 
0100: 20 20 20 09 43 6f 6e 74 61 69 6e 73 20 43 53 56     .Contains CSV
0110: 20 66 69 6c 65 3a 20 68 61 73 68 2c 68 61 73 68   file: hash,hash
0120: 4d 65 74 68 6f 64 2c 3c 63 65 72 74 69 66 69 63  Method,<certific
0130: 61 74 65 49 6e 44 45 52 46 6f 72 6d 61 74 49 6e  ateInDERFormatIn
0140: 48 65 78 3e 2c 3c 50 4b 43 53 23 31 76 31 2e 35  Hex>,<PKCS#1v1.5
0150: 2d 73 69 67 6e 61 74 75 72 65 2d 69 6e 44 45 52  -signature-inDER
0160: 46 6f 72 6d 61 74 49 6e 48 65 78 3e 0a 09 20 20  FormatInHex>..  
0170: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0180: 20 5c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f   \-------------/
0190: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
01a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01b0: 20 20 20 5e 2d 20 53 69 67 6e 65 64 20 64 61 74     ^- Signed dat
01c0: 61 0a 20 20 20 20 09 46 65 74 63 68 65 73 3a 20  a.    .Fetches: 
01d0: 68 74 74 70 3a 2f 2f 68 6f 73 74 6e 61 6d 65 2f  http://hostname/
01e0: 61 70 70 66 73 2f 73 68 61 31 2f 3c 68 61 73 68  appfs/sha1/<hash
01f0: 3e 0a 20 20 20 20 09 43 6f 6e 74 61 69 6e 73 20  >.    .Contains 
0200: 43 53 56 20 66 69 6c 65 3a 20 70 61 63 6b 61 67  CSV file: packag
0210: 65 2c 76 65 72 73 69 6f 6e 2c 6f 73 2c 63 70 75  e,version,os,cpu
0220: 41 72 63 68 2c 73 68 61 31 2c 69 73 4c 61 74 65  Arch,sha1,isLate
0230: 73 74 0a 0a 20 20 20 20 2f 6f 70 74 2f 61 70 70  st..    /opt/app
0240: 66 73 2f 68 6f 73 74 6e 61 6d 65 2f 70 61 63 6b  fs/hostname/pack
0250: 61 67 65 2f 6f 73 2d 63 70 75 41 72 63 68 2f 76  age/os-cpuArch/v
0260: 65 72 73 69 6f 6e 0a 20 20 20 20 2f 6f 70 74 2f  ersion.    /opt/
0270: 61 70 70 66 73 2f 68 6f 73 74 6e 61 6d 65 2f 73  appfs/hostname/s
0280: 68 61 31 2f 0a 20 20 20 20 09 46 65 74 63 68 65  ha1/.    .Fetche
0290: 73 3a 20 68 74 74 70 3a 2f 2f 68 6f 73 74 6e 61  s: http://hostna
02a0: 6d 65 2f 61 70 70 66 73 2f 73 68 61 31 2f 3c 73  me/appfs/sha1/<s
02b0: 68 61 31 3e 0a 20 20 20 20 09 43 6f 6e 74 61 69  ha1>.    .Contai
02c0: 6e 73 20 43 53 56 20 66 69 6c 65 3a 0a 20 20 20  ns CSV file:.   
02d0: 20 09 09 74 79 70 65 2c 74 69 6d 65 2c 65 78 74   ..type,time,ext
02e0: 72 61 44 61 74 61 2c 6e 61 6d 65 0a 20 20 20 20  raData,name.    
02f0: 09 09 74 79 70 65 20 3d 3d 20 64 69 72 65 63 74  ..type == direct
0300: 6f 72 79 3b 20 65 78 74 72 61 44 61 74 61 20 3d  ory; extraData =
0310: 20 28 6e 75 6c 6c 29 0a 20 20 20 20 09 09 74 79   (null).    ..ty
0320: 70 65 20 3d 3d 20 73 79 6d 6c 69 6e 6b 3b 20 65  pe == symlink; e
0330: 78 74 72 61 44 61 74 61 20 3d 20 73 6f 75 72 63  xtraData = sourc
0340: 65 0a 20 20 20 20 09 09 74 79 70 65 20 3d 3d 20  e.    ..type == 
0350: 66 69 6c 65 3b 20 65 78 74 72 61 44 61 74 61 20  file; extraData 
0360: 3d 20 73 69 7a 65 2c 70 65 72 6d 73 2c 73 68 61  = size,perms,sha
0370: 31 0a 0a 20 20 20 20 2f 6f 70 74 2f 61 70 70 66  1..    /opt/appf
0380: 73 2f 68 6f 73 74 6e 61 6d 65 2f 7b 73 68 61 31  s/hostname/{sha1
0390: 2c 70 61 63 6b 61 67 65 2f 6f 73 2d 63 70 75 41  ,package/os-cpuA
03a0: 72 63 68 2f 76 65 72 73 69 6f 6e 7d 2f 66 69 6c  rch/version}/fil
03b0: 65 0a 20 20 20 20 09 46 65 74 63 68 65 73 3a 20  e.    .Fetches: 
03c0: 68 74 74 70 3a 2f 2f 68 6f 73 74 6e 61 6d 65 2f  http://hostname/
03d0: 61 70 70 66 73 2f 73 68 61 31 2f 3c 73 68 61 31  appfs/sha1/<sha1
03e0: 3e 0a 0a 44 61 74 61 62 61 73 65 0a 2d 2d 2d 2d  >..Database.----
03f0: 2d 2d 2d 2d 0a 20 20 20 20 70 61 63 6b 61 67 65  ----.    package
0400: 73 28 68 6f 73 74 6e 61 6d 65 2c 20 73 68 61 31  s(hostname, sha1
0410: 2c 20 70 61 63 6b 61 67 65 2c 20 76 65 72 73 69  , package, versi
0420: 6f 6e 2c 20 6f 73 2c 20 63 70 75 41 72 63 68 2c  on, os, cpuArch,
0430: 20 69 73 4c 61 74 65 73 74 2c 20 68 61 76 65 4d   isLatest, haveM
0440: 61 6e 69 66 65 73 74 29 0a 20 20 20 20 66 69 6c  anifest).    fil
0450: 65 73 28 70 61 63 6b 61 67 65 5f 73 68 61 31 2c  es(package_sha1,
0460: 20 74 79 70 65 2c 20 74 69 6d 65 2c 20 73 6f 75   type, time, sou
0470: 72 63 65 2c 20 73 69 7a 65 2c 20 70 65 72 6d 73  rce, size, perms
0480: 2c 20 66 69 6c 65 5f 73 68 61 31 2c 20 66 69 6c  , file_sha1, fil
0490: 65 5f 6e 61 6d 65 2c 20 66 69 6c 65 5f 64 69 72  e_name, file_dir
04a0: 65 63 74 6f 72 79 29 0a 0a 52 65 73 6f 75 72 63  ectory)..Resourc
04b0: 65 73 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 68 74 74  es.---------.htt
04c0: 70 3a 2f 2f 61 70 70 66 73 2e 72 6b 65 65 6e 65  p://appfs.rkeene
04d0: 2e 6f 72 67 2f 0a                                .org/.