1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00
samba-mirror/source4/scripting/bin/samba-tool
Jelmer Vernooij fa332b71dc s4-python: Override SIGINT handler in scripts only.
Override the SIGINT handler in a few select cases only, rather than
doing so in one of the samba Python modules. I've done this where it
matters most; we can add this code to other scripts too if necessary.

This means that importing the 'samba' module from a third party
application does not have side-effects on the state of the signal
handlers.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=9068
2012-09-25 20:59:09 +02:00

51 lines
1.5 KiB
Python
Executable File

#!/usr/bin/env python
# Unix SMB/CIFS implementation.
# Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008-2012
# Copyright (C) Amitay Isaacs <amitay@gmail.com> 2011
# Copyright (C) Giampaolo Lauria <lauria2@yahoo.com> 2011
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
#
import sys
# Find right direction when running from source tree
sys.path.insert(0, "bin/python")
# make sure the script dies immediately when hitting control-C,
# rather than raising KeyboardInterrupt. As we do all database
# operations using transactions, this is safe.
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
from samba.netcmd.main import cmd_sambatool
cmd = cmd_sambatool()
subcommand = None
args = ()
if len(sys.argv) > 1:
subcommand = sys.argv[1]
if len(sys.argv) > 2:
args = sys.argv[2:]
try:
retval = cmd._run("samba-tool", subcommand, *args)
except SystemExit, e:
retval = e.code
except Exception, e:
cmd.show_command_error(e)
retval = 1
sys.exit(retval)