s/fdisk/blkid/g On Mon, 3 Aug 2015 22:29:19 +0300 Dima Krasner <[email protected]> wrote:
> Hi, > > I've added support for running fdisk without specifying a partition (so it > scans /proc/partitions). > > Cheers, > Dima > > diff --git a/toys/other/blkid.c b/toys/other/blkid.c > index c18cc9c..1e1f7ed 100644 > --- a/toys/other/blkid.c > +++ b/toys/other/blkid.c > @@ -4,7 +4,7 @@ > * > * See > ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.24/libblkid-docs/api-index-full.html > > -USE_BLKID(NEWTOY(blkid, "<1", TOYFLAG_BIN)) > +USE_BLKID(NEWTOY(blkid, NULL, TOYFLAG_BIN)) > USE_FSTYPE(NEWTOY(fstype, "<1", TOYFLAG_BIN)) > > config BLKID > @@ -27,6 +27,8 @@ config FSTYPE > #define FOR_blkid > #include "toys.h" > > +#define ONE_K 1024 > + > struct fstype { > char *name; > uint64_t magic; > @@ -56,7 +58,6 @@ static const struct fstype fstypes[] = { > {"vfat", 0x31544146, 4, 54, 39+(4<<24), 11, 43} // fat1 > }; > > -/* TODO if no args use proc/partitions */ > static void do_blkid(int fd, char *name) > { > int off, i, j; > @@ -134,12 +135,36 @@ static void do_blkid(int fd, char *name) > printf(" TYPE=\"%s\"\n", type); > } > > +static void loop_partitions() > +{ > + unsigned int ma, mi, sz, fd; > + char device[14]; > + char *name = toybuf, *buffer = toybuf + ONE_K; > + FILE* fp = xfopen("/proc/partitions", "r"); > + > + while (fgets(buffer, ONE_K, fp)) { > + name[0] = '\0'; > + if (sscanf(buffer, " %u %u %u %[^\n ]", &ma, &mi, &sz, name) != 4) > + continue; > + > + sprintf(device,"/dev/%s",name); > + fd = open(device, O_RDONLY); > + if (-1 == fd) perror_exit("Could not open %s", device); > + do_blkid(fd, device); > + close(fd); > + } > + fclose(fp); > +} > + > void blkid_main(void) > { > - loopfiles(toys.optargs, do_blkid); > + if (*toys.optargs) > + loopfiles(toys.optargs, do_blkid); > + else > + loop_partitions(); > } > > void fstype_main(void) > { > - blkid_main(); > + loopfiles(toys.optargs, do_blkid); > } > -- > Dima Krasner <[email protected]> -- Dima Krasner <[email protected]> _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
