4 # Copyright Jelmer Vernooij 2005-2007
5 # Released under the GNU GPL v3 or later
11 # Find right directory when running from source tree
12 sys
.path
.insert(0, "bin/python")
15 import samba
.getopt
as options
16 from samba
import param
17 from samba
.auth
import system_session
19 parser
= optparse
.OptionParser("upgrade [options] <libdir> <smbconf>")
20 sambaopts
= options
.SambaOptions(parser
)
21 parser
.add_option_group(sambaopts
)
22 parser
.add_option_group(options
.VersionOptions(parser
))
23 credopts
= options
.CredentialsOptions(parser
)
24 parser
.add_option_group(credopts
)
25 parser
.add_option("--setupdir", type="string", metavar
="DIR",
26 help="directory with setup files")
27 parser
.add_option("--realm", type="string", metavar
="REALM", help="set realm")
28 parser
.add_option("--quiet", help="Be quiet")
29 parser
.add_option("--blank",
30 help="do not add users or groups, just the structure")
31 parser
.add_option("--targetdir", type="string", metavar
="DIR",
32 help="Set target directory")
34 opts
, args
= parser
.parse_args()
37 """Print a message if quiet is not set."""
44 from samba
.samba3
import Samba3
45 message("Reading Samba3 databases and smb.conf\n")
47 if not os
.path
.isdir(libdir
):
48 print "error: %s is not a directory"
53 smbconf
= os
.path
.join(libdir
, "smb.conf")
54 samba3
= Samba3(libdir
, smbconf
)
56 from samba
.upgrade
import upgrade_provision
58 message("Provisioning\n")
60 setup_dir
= opts
.setupdir
64 lp
= sambaopts
.get_loadparm()
65 smbconf
= lp
.configfile()
66 creds
= credopts
.get_credentials(lp
)
68 upgrade_provision(samba3
, setup_dir
, message
, credentials
=creds
, session_info
=system_session(),
69 smbconf
=smbconf
, targetdir
=opts
.targetdir
)