* 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.
This commit is contained in:
Matt Kraai 2002-03-20 17:38:37 +00:00
parent 27eff033d2
commit 83788da250
5 changed files with 72 additions and 0 deletions

View File

@ -269,6 +269,9 @@
#ifdef CONFIG_LOGREAD
APPLET(logread, logread_main, _BB_DIR_SBIN)
#endif
#ifdef CONFIG_LOSETUP
APPLET(losetup, losetup_main, _BB_DIR_SBIN)
#endif
#ifdef CONFIG_LS
APPLET(ls, ls_main, _BB_DIR_BIN)
#endif

View File

@ -989,6 +989,15 @@
#define logread_full_usage \
"Shows the messages from syslogd (using circular buffer)."
#define losetup_trivial_usage \
"[OPTION]... LOOPDEVICE FILE\n" \
"or: losetup [OPTION]... -d LOOPDEVICE"
#define losetup_full_usage \
"Associate LOOPDEVICE with FILE.\n\n" \
"Options:\n" \
"\t-d\t\tDisassociate LOOPDEVICE.\n" \
"\t-o OFFSET\tStart OFFSET bytes into FILE.\n"
#ifdef CONFIG_FEATURE_LS_TIMESTAMPS
#define USAGE_LS_TIMESTAMPS(a) a
#else

View File

@ -31,6 +31,7 @@ obj-$(CONFIG_FREERAMDISK) += freeramdisk.o
obj-$(CONFIG_FSCK_MINIX) += fsck_minix.o
obj-$(CONFIG_GETOPT) += getopt.o
obj-$(CONFIG_HEXDUMP) += hexdump.o
obj-$(CONFIG_LOSETUP) += losetup.o
obj-$(CONFIG_MKFS_MINIX) += mkfs_minix.o
obj-$(CONFIG_MKSWAP) += mkswap.o
obj-$(CONFIG_MORE) += more.o

View File

@ -23,6 +23,7 @@ if [ "$CONFIG_FSCK_MINIX" = "y" -o "$CONFIG_MKFS_MINIX" = "y" ]; then
fi
bool 'getopt' CONFIG_GETOPT
bool 'hexdump' CONFIG_HEXDUMP
bool 'losetup' CONFIG_LOSETUP
bool 'mkswap' CONFIG_MKSWAP
bool 'more' CONFIG_MORE
if [ "$CONFIG_MORE" = "y" ]; then

58
util-linux/losetup.c Normal file
View File

@ -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;
}