diff options
author | Matt Kraai | 2002-03-20 17:38:37 +0000 |
---|---|---|
committer | Matt Kraai | 2002-03-20 17:38:37 +0000 |
commit | 83788da25055c4a2775c3d78a29255ee671141bb (patch) | |
tree | 0b3bc1a959cb05eed021051978f7af1cc9c3108d /util-linux/losetup.c | |
parent | 27eff033d20198f04ecf44af93988b89363650e4 (diff) | |
download | busybox-83788da25055c4a2775c3d78a29255ee671141bb.zip busybox-83788da25055c4a2775c3d78a29255ee671141bb.tar.gz |
* include/applets.h (CONFIG_LOSETUP): New.
* include/usage.h (losetup_trivial_usage, losetup_full_usage): New.
* util-linux/Makefile: Add losetup.o.
* util-linux/config.in: Add losetup prompt.
* util-linux/losetup.c: New.
Diffstat (limited to 'util-linux/losetup.c')
-rw-r--r-- | util-linux/losetup.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/util-linux/losetup.c b/util-linux/losetup.c new file mode 100644 index 0000000..bfeb6b2 --- /dev/null +++ b/util-linux/losetup.c @@ -0,0 +1,58 @@ +/* + * Mini losetup implementation for busybox + * + * Copyright (C) 2002 Matt Kraai. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include <getopt.h> +#include <stdlib.h> + +#include "busybox.h" + +int +losetup_main (int argc, char **argv) +{ + int delete = 0; + int offset = 0; + int opt; + + while ((opt = getopt (argc, argv, "do:")) != -1) + switch (opt) + { + case 'd': + delete = 1; + break; + + case 'o': + offset = parse_number (optarg, NULL); + break; + + default: + show_usage (); + } + + if ((delete && (offset || optind + 1 != argc)) + || (!delete && optind + 2 != argc)) + show_usage (); + + if (delete) + return del_loop (argv[optind]) ? EXIT_SUCCESS : EXIT_FAILURE; + else + return set_loop (argv[optind], argv[optind + 1], offset, &opt) + ? EXIT_FAILURE : EXIT_SUCCESS; +} |