Annotation of researchv10no/cmd/dist/talk/slide7, revision 1.1.1.1

1.1       root        1: .ce
                      2: How \fIinsdist\fP works
                      3: .sp 2
                      4: .BU
                      5: We want either completely install the distribution, or
                      6: completely fail to install it; we don't want the file system
                      7: left in an intermediate state.
                      8: Initial idea:
                      9: .CO
                     10: tar cf $backup $files
                     11: tar t $backup | sort > $oldlist
                     12: tar tf $tarfile | sort > $newlist
                     13: if tar xf $tarfile
                     14: then
                     15:        comm -23 $oldlist $newlist > $remove
                     16:        test -s $remove && xargs rm -fr < $remove
                     17: else
                     18:        tar xf $backup
                     19:        comm -13 $oldlist $newlist > $remove
                     20:        test -s $remove && xargs rm -fr < $remove
                     21: fi
                     22: .CE
                     23: .BU
                     24: Unfortunately, line oriented text utilities don't like
                     25: funny file names.  We can fix this with \f(CWqargs\fP and
                     26: \f(CWuargs\fP.
                     27: Revised code:
                     28: .CO
                     29: # assume $files is in qargs format
                     30: uargs tar cf $backup $files
                     31: # tarf -tq prints tarfile contents in qargs format
                     32: tarf -tq < $backup | sort > $oldlist
                     33: tarf -tq < $tarfile | sort > $newlist
                     34: if tar xf $tarfile
                     35: then
                     36:        comm -23 $oldlist $newlist > $remove
                     37:        test -s $remove && xargs uargs rm -fr < $remove
                     38: else
                     39:        tar xf $backup
                     40:        comm -13 $oldlist $newlist > $remove
                     41:        test -s $remove && xargs uargs rm -fr < $remove
                     42: fi
                     43: .CE

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.