diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:20:02 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:20:02 +0000 |
commit | 0a354ad0b2c9eaaa204c31db478da109dc6d2a8b (patch) | |
tree | 2467caa8ad20a7fca31bef64224e41a4238db0c9 /debian/addshare.py | |
parent | Adding upstream version 2:4.20.0+dfsg. (diff) | |
download | samba-0a354ad0b2c9eaaa204c31db478da109dc6d2a8b.tar.xz samba-0a354ad0b2c9eaaa204c31db478da109dc6d2a8b.zip |
Adding debian version 2:4.20.0+dfsg-1~exp1.debian/2%4.20.0+dfsg-1_exp1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/addshare.py')
-rwxr-xr-x | debian/addshare.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/debian/addshare.py b/debian/addshare.py new file mode 100755 index 0000000..8b5e3c4 --- /dev/null +++ b/debian/addshare.py @@ -0,0 +1,46 @@ +#!/usr/bin/python3 +# Helper to add a share in the samba configuration file +# Eventually this should be replaced by a call to samba-tool, but +# for the moment that doesn't support setting individual configuration options. + +import optparse +import os +import re +import shutil +import stat +import sys +import tempfile + +parser = optparse.OptionParser() +parser.add_option("--configfile", type=str, metavar="CONFFILE", + help="Configuration file to use", default="/etc/samba/smb.conf") + +(opts, args) = parser.parse_args() +if len(args) != 2: + parser.print_usage() + +(share, path) = args +done = False + +inf = open(opts.configfile, 'r') +(fd, fn) = tempfile.mkstemp() +outf = os.fdopen(fd, 'w') + +for l in inf.readlines(): + m = re.match(r"^\s*\[([^]]+)\]$", l) + if m: + name = m.groups(1)[0] + if name.lower() == share.lower(): + sys.exit(0) + outf.write(l) + +if not os.path.isdir(path): + os.makedirs(path) +outf.write("[%s]\n" % share) +outf.write(" path = %s\n" % path) +outf.write(" read only = no\n") +outf.write("\n") + +os.fchmod(fd, stat.S_IMODE(os.stat(opts.configfile).st_mode)) +outf.close() +shutil.move(fn, opts.configfile) |