Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Notes on zsh, zsh/files and recovery



Managed to hose my box by trying to be too clever while rebuilding.
Luckily, had zsh as root at the time.  In the end, didn't help fix it;
once you've hosed /libexec/ld-elf.so.1 with a version that's for a
different architecture to the kernel, you're hosed.  But it's an
interesting exercise, trying to recover without making use of exec() (as
opposed to the more usual fork() limitation).

zsh/files needs zf_chmod.  I'll do that.  Not today, but when I've had
some sleep.  Does anyone have objections to platform-dependent commands
conditionally available in existing modules?  I'm tempted to add
chflags(1) too, since another time it might be a need to nuke an
immutable flag that's the problem.

I now see the use for zf_cp.  zmodload zsh/mapfile and using:
  print -nr -- ${mapfile[srcname]} > $destname
is a close approximation for a straight cat, at least.  Thankfully, zsh
handles embedded NULs fine.  Without chmod, copying an executable
cross-filesystem was trickier.  Luckily, for some reason, /bin/rmail is
still supplied on the root file-system in FreeBSD and that's
unimportant, so I could sacrifice it with zf_mv and then print mapfile
on top of it.  Alas, the only version I had available to recover with
was not helpful and there was no backup of the original and no way to
invoke an embedded C compiler from zsh.  *sigh*  Hrm, on reflection, if
I'd had another box to build on, I could have used zsh's built-in FTP
handling to retrieve the file that way.

Seem reasonable to implement zf_cp and make zf_mv call that for
cross-filesystem cases?

There does not appear to be a zls() ?  I hacked one together using
zsh/stat and ... it's rather slow.  I'm tempted to build up a closer
emulation of ls(1) with a few useful options and contribute it as a
standard function.  It will be truly slow, but occasionally useful.

If the ACL situation weren't such a complete mess across platforms, I
might do something there.  Anyone have any thoughts against
zsh/acl_posix1003.2c ?  Anyone have a better name?  ;)  I just want to
be able to use getfacl/setfacl and probably with the nice Linux
behaviour of automatically supplying a calculated mask for default
entries for setfacl, since the FreeBSD behaviour regularly bites me.
I've hit it often enough and use ACLs frequently enough now that I
think I remember quickly.  I can't think of a decent way to structure
the data of getfacl to have appropriate key/value for putting the
results into a hash, so it would only implement the regular support.

If I'm going to scratch this bunch of itches, anyone have any feature
requests or anti-feature requests?  No guarantees.

-Phil



Messages sorted by: Reverse Date, Date, Thread, Author