zsh-workers
 help / color / mirror / code / Atom feed
* Notes on zsh, zsh/files and recovery
@ 2008-10-18 20:45 Phil Pennock
  2008-10-18 20:56 ` Mikael Magnusson
  2008-10-19  6:39 ` Dan Nelson
  0 siblings, 2 replies; 5+ messages in thread
From: Phil Pennock @ 2008-10-18 20:45 UTC (permalink / raw)
  To: zsh-workers

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-10-20 22:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-18 20:45 Notes on zsh, zsh/files and recovery Phil Pennock
2008-10-18 20:56 ` Mikael Magnusson
2008-10-19  6:39 ` Dan Nelson
2008-10-20  0:28   ` Phil Pennock
2008-10-20 15:09     ` Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).