1 #! /usr/bin/python2.4 -S
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
22 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 # Use is subject to license terms.
26 # Note, we want SIGINT (control-c) to exit the process quietly, to mimic
27 # the standard behavior of C programs. The best we can do with pure
28 # Python is to run with -S (to disable "import site"), and start our
29 # program with a "try" statement. Hopefully nobody hits ^C before our
30 # try statement is executed.
40 """This is the main script for doing zfs subcommands. It doesn't know
41 what subcommands there are, it just looks for a module zfs.<subcommand>
42 that implements that subcommand."""
44 _ = gettext.translation("SUNW_OST_OSCMD", "/usr/lib/locale",
45 fallback=True).gettext
48 sys.exit(_("missing subcommand argument"))
50 zfs.ioctl.set_cmdstr(" ".join(["zfs"] + sys.argv[1:]))
53 # import zfs.<subcommand>
54 # subfunc = zfs.<subcommand>.do_<subcommand>
57 __import__("zfs." + subcmd)
58 submod = getattr(zfs, subcmd)
59 subfunc = getattr(submod, "do_" + subcmd)
60 except (ImportError, AttributeError):
61 sys.exit(_("invalid subcommand"))
65 except zfs.util.ZFSError, e:
73 if e.errno == errno.EPIPE:
76 except KeyboardInterrupt: