mount: implement -v option to print available filesystems
It's useful to know which filesystems a barebox binary supports. Add a -v option to the mount command to find it out. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
d915fcbc6d
commit
7a1c5027f9
|
@ -31,27 +31,40 @@
|
||||||
static int do_mount(int argc, char *argv[])
|
static int do_mount(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int opt;
|
int opt;
|
||||||
int ret = 0;
|
int ret = 0, verbose = 0;
|
||||||
struct fs_device_d *fsdev;
|
struct fs_device_d *fsdev;
|
||||||
|
struct driver_d *drv;
|
||||||
const char *type = NULL;
|
const char *type = NULL;
|
||||||
const char *mountpoint, *dev;
|
const char *mountpoint, *dev;
|
||||||
|
|
||||||
if (argc == 1) {
|
while ((opt = getopt(argc, argv, "t:v")) > 0) {
|
||||||
|
switch (opt) {
|
||||||
|
case 't':
|
||||||
|
type = optarg;
|
||||||
|
break;
|
||||||
|
case 'v':
|
||||||
|
verbose++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (argc == optind) {
|
||||||
for_each_fs_device(fsdev) {
|
for_each_fs_device(fsdev) {
|
||||||
printf("%s on %s type %s\n",
|
printf("%s on %s type %s\n",
|
||||||
fsdev->backingstore ? fsdev->backingstore : "none",
|
fsdev->backingstore ? fsdev->backingstore : "none",
|
||||||
fsdev->path,
|
fsdev->path,
|
||||||
fsdev->dev.name);
|
fsdev->dev.name);
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "t:")) > 0) {
|
if (verbose) {
|
||||||
switch (opt) {
|
printf("\nSupported filesystems:\n\n");
|
||||||
case 't':
|
bus_for_each_driver(&fs_bus, drv) {
|
||||||
type = optarg;
|
struct fs_driver_d * fsdrv = drv_to_fs_driver(drv);
|
||||||
break;
|
printf("%s\n", fsdrv->drv.name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc < optind + 2)
|
if (argc < optind + 2)
|
||||||
|
@ -77,7 +90,9 @@ static int do_mount(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
BAREBOX_CMD_HELP_START(mount)
|
BAREBOX_CMD_HELP_START(mount)
|
||||||
BAREBOX_CMD_HELP_USAGE("mount [[-t <fstype] <device> <mountpoint>]\n")
|
BAREBOX_CMD_HELP_USAGE("mount [[OPTIONS] <device> <mountpoint>]\n")
|
||||||
|
BAREBOX_CMD_HELP_OPT("-t <type>", "specify filesystem type\n")
|
||||||
|
BAREBOX_CMD_HELP_OPT("-v", "be more verbose\n")
|
||||||
BAREBOX_CMD_HELP_SHORT("Mount a filesystem of a given type to a mountpoint.\n")
|
BAREBOX_CMD_HELP_SHORT("Mount a filesystem of a given type to a mountpoint.\n")
|
||||||
BAREBOX_CMD_HELP_SHORT("If no fstype is specified, try to detect it automatically.\n")
|
BAREBOX_CMD_HELP_SHORT("If no fstype is specified, try to detect it automatically.\n")
|
||||||
BAREBOX_CMD_HELP_SHORT("If no argument is given, list mounted filesystems.\n")
|
BAREBOX_CMD_HELP_SHORT("If no argument is given, list mounted filesystems.\n")
|
||||||
|
|
|
@ -87,6 +87,7 @@ struct fs_driver_d {
|
||||||
|
|
||||||
extern struct list_head fs_device_list;
|
extern struct list_head fs_device_list;
|
||||||
#define for_each_fs_device(f) list_for_each_entry(f, &fs_device_list, list)
|
#define for_each_fs_device(f) list_for_each_entry(f, &fs_device_list, list)
|
||||||
|
extern struct bus_type fs_bus;
|
||||||
|
|
||||||
struct fs_device_d {
|
struct fs_device_d {
|
||||||
char *backingstore; /* the device we are associated with */
|
char *backingstore; /* the device we are associated with */
|
||||||
|
|
Loading…
Reference in New Issue