Index: uspace/app/bdsh/cmds/modules/unmount/unmount.c
===================================================================
--- uspace/app/bdsh/cmds/modules/unmount/unmount.c	(revision 0cb2d725c51ac13d0cd117c5867eeec55b19cb44)
+++ uspace/app/bdsh/cmds/modules/unmount/unmount.c	(revision 203a0901aaf89da1f59fc324dbbee2c5b07eeed0)
@@ -1,12 +1,34 @@
-/* Automatically generated by mknewcmd on Fri Jan 22 17:47:44 CET 2010
- * This is machine generated output. The author of mknewcmd claims no
- * copyright over the contents of this file. Where legally permitted, the
- * contents herein are donated to the public domain.
+/*
+ * Copyright (c) 2010 Jakub Jermar
+ * All rights reserved.
  *
- * You should apply any license and copyright that you wish to this file,
- * replacing this header in its entirety. */
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <vfs/vfs.h>
+#include <errno.h>
 #include "config.h"
 #include "util.h"
@@ -21,6 +43,10 @@
 void help_cmd_unmount(unsigned int level)
 {
-	printf("This is the %s help for '%s'.\n",
-		level ? EXT_HELP : SHORT_HELP, cmdname);
+	if (level == HELP_SHORT) {
+		printf("'%s' unmount a file system.\n", cmdname);
+	} else {
+		help_cmd_unmount(HELP_SHORT);
+		printf("Usage:  %s <mp>\n", cmdname);
+	}
 	return;
 }
@@ -30,20 +56,19 @@
 {
 	unsigned int argc;
-	unsigned int i;
+	int rc;
 
-	/* Count the arguments */
-	for (argc = 0; argv[argc] != NULL; argc ++);
+	argc = cli_count_args(argv);
 
-	printf("%s %s\n", TEST_ANNOUNCE, cmdname);
-	printf("%d arguments passed to %s", argc - 1, cmdname);
-
-	if (argc < 2) {
-		printf("\n");
-		return CMD_SUCCESS;
+	if (argc != 2) {
+		printf("%s: invalid number of arguments.\n",
+		    cmdname);
+		return CMD_FAILURE;
 	}
 
-	printf(":\n");
-	for (i = 1; i < argc; i++)
-		printf("[%d] -> %s\n", i, argv[i]);
+	rc = unmount(argv[1]);
+	if (rc != EOK) {
+		printf("Unable to unmount %s (rc=%d)\n", argv[1]);
+		return CMD_FAILURE;
+	}
 
 	return CMD_SUCCESS;
