[Toybox] fstype/blkid
Rob Landley
rob at landley.net
Wed Sep 18 23:55:38 PDT 2013
On 09/11/2013 08:10:22 PM, Conroy, Bradley Quentin wrote:
> > At some point, I need to do file. It's a posix command, but all the
> > brains of the thing are in a file of match heuristics, and so far
> > toybox doesn't depend on external data files.
> >
> >
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/file.html
>
> funny you should mention that, I have a version of "file --mime-type"
> that
> works similar to the blkid after checking the file extension(s).
The commands implement the same general idea. :)
> Currently I
> have about 30kb of extension-based mime-type checks some are not
> very common though and could be commened out. If the ext check fails
> it then falls back to magic at offset checks (currently I only have
> common
> image types implemented) I only wrote this because it is a choke
> point
> in a lot of web servers, so all the code is in 7 switch cases rather
> than an external file (it is ~60x faster though, since most of the
> time
> it doesn't even need to open the file) again, if's may be better than
> switch case in hind sight. My initial implementation is here:
> http://murga-linux.com/puppy/viewtopic.php?p=715660#715660
> but I have fixed some stuff since and added the magic checks.
The speed is indeed awesome, but hardwiring in a lot of stuff makes me
uncomfortable. Have to think about it.
(I initially thought Posix's "example" table would be a good thing to
hardwire in, until I looked at it. Trust posix to come up with truly
useless examples.)
> > The current command's name is this.which->name (because this.which
> is a
> > pointer to our entry in toylist[], and then name is the command name
> > field, main is the function pointer, and so on).
>
> That should be enough to do a strncmp to determine whether to handle
> the UUID and device name. It will be early next week before I can
> get to
> it though.
You see how far behind I am on my email. :)
Rob
1379573738.0
More information about the Toybox
mailing list