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 (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
25 # Note, we want SIGINT (control-c) to exit the process quietly, to mimic
26 # the standard behavior of C programs. The best we can do with pure
27 # Python is to run with -S (to disable "import site"), and start our
28 # program with a "try" statement. Hopefully nobody hits ^C before our
29 # 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."""
45 _
= gettext
.translation("SUNW_OST_OSCMD", "/usr/lib/locale",
46 fallback
=True).gettext
48 _
= solaris
.misc
.gettext
51 sys
.exit(_("missing subcommand argument"))
53 zfs
.ioctl
.set_cmdstr(" ".join(["zfs"] + sys
.argv
[1:]))
56 # import zfs.<subcommand>
57 # subfunc = zfs.<subcommand>.do_<subcommand>
60 __import__("zfs." + subcmd
)
61 submod
= getattr(zfs
, subcmd
)
62 subfunc
= getattr(submod
, "do_" + subcmd
)
63 except (ImportError, AttributeError):
64 sys
.exit(_("invalid subcommand"))
68 except zfs
.util
.ZFSError
, e
:
76 if e
.errno
== errno
.EPIPE
:
79 except KeyboardInterrupt: