2018-04-04 07:17:51 +03:00
# Unix SMB/CIFS implementation.
# mdb util helpers
#
# Copyright (C) Andrew Bartlett <abartlet@samba.org> 2018
#
# 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 samba
import subprocess
import os
2018-11-09 02:17:40 +03:00
from samba . netcmd import CommandError
2018-04-04 07:17:51 +03:00
def mdb_copy ( file1 , file2 ) :
""" Copy mdb file using mdb_copy utility and rename it
"""
# Find the location of the mdb_copy tool
dirs = os . getenv ( ' PATH ' ) . split ( os . pathsep )
2018-11-09 02:17:40 +03:00
found = False
2018-04-04 07:17:51 +03:00
for d in dirs :
toolpath = os . path . join ( d , " mdb_copy " )
if os . path . exists ( toolpath ) :
2018-11-09 02:17:40 +03:00
found = True
2018-04-04 07:17:51 +03:00
break
2018-11-09 02:17:40 +03:00
if not found :
raise CommandError ( " mdb_copy not found. "
" You may need to install the lmdb-utils package " )
2018-04-04 07:17:51 +03:00
mdb_copy_cmd = [ toolpath , " -n " , file1 , " %s .copy.mdb " % file1 ]
2018-06-26 04:47:42 +03:00
status = subprocess . check_call ( mdb_copy_cmd , close_fds = True , shell = False )
2018-04-04 07:17:51 +03:00
2018-06-26 04:47:42 +03:00
os . rename ( " %s .copy.mdb " % file1 , file2 )