#include <stdio.h>
#define MOUNTABLE_FILE "/Acess/Conf/Mountable"
-#define MOUNTED_FILE "/Devices/System/VFS/Mounts"
+#define MOUNTED_FILE "/Devices/system/VFS/Mounts"
// === PROTOTYPES ===
-void ShowUsage();
+void ShowUsage(char *ProgName);
int GetMountDefs(char *Ident, char **spDevice, char **spDir, char **spType, char **spOptions);
// === CODE ===
char *sDir = NULL;
char *sOptions = NULL;
+ // List mounted filesystems
+ // - This is cheating, isn't it?
+ if(argc == 1) {
+ // Dump the contents of /Devices/system/VFS/Mounts
+ FILE *fp = fopen(MOUNTED_FILE, "r");
+ char buf[1024];
+ int len;
+ while( (len = fread(buf, 1024, 1, fp)) )
+ fwrite(buf, len, 1, stdout);
+ printf("\n");
+ return 0;
+ }
+
if(argc < 3) {
- ShowUsage();
+ ShowUsage(argv[0]);
return EXIT_FAILURE;
}
{
// -t <driver> :: Filesystem driver to use
case 't': sType = argv[++i]; break;
+ case 'o': sOptions = argv[++i]; break;
case '-':
//TODO: Long Arguments
default:
else
{
// Check that we were passed a filesystem type
- if(sType == NULL) {
- fprintf(stderr, "Please pass a filesystem type\n");
- return EXIT_FAILURE;
- }
+// if(sType == NULL) {
+// fprintf(stderr, "Please pass a filesystem type\n");
+// return EXIT_FAILURE;
+// }
}
// Check Device
if(sOptions == NULL) sOptions = "";
// Let's Mount!
- _SysMount(sDevice, sDir, sType, sOptions);
+ if( _SysMount(sDevice, sDir, sType, sOptions) ) {
+ if( !sType )
+ fprintf(stderr, "Filesystem autodetection failed, please pass a type\n");
+ }
return 0;
}
void ShowUsage(char *ProgName)
{
- fprintf(stderr, "Usage:\n", ProgName);
- fprintf(stderr, " %s [-t <type>] <device> <directory>\n");
- fprintf(stderr, "or %s <device>\n");
- fprintf(stderr, "or %s <directory>\n");
+ fprintf(stderr, "Usage:\n");
+ fprintf(stderr, " %s [-t <type>] <device> <directory> [-o <options>]\n", ProgName);
+ fprintf(stderr, "or %s <device>\n", ProgName);
+ fprintf(stderr, "or %s <directory>\n", ProgName);
+ fprintf(stderr, "or %s\n", ProgName);
}
/**