X-Git-Url: https://git.phdru.name/?p=extfs.d.git;a=blobdiff_plain;f=obexftp;h=6149cdd54eaba282538965ccc1d7d9178cdd6955;hp=a8ad677a9572cddc78732e1128b7dd6b87b64dfb;hb=cca4984c9f5978b07822df5d8c546bf902f30b55;hpb=33d85a6e446c83e9b5f9142d540cb502dcac2e05 diff --git a/obexftp b/obexftp index a8ad677..6149cdd 100755 --- a/obexftp +++ b/obexftp @@ -37,9 +37,9 @@ make the scanning process faster. Midnight Commander caches the result. """ -__version__ = "0.1.0" -__revision__ = "$Id: obexftp,v 1.2 2004/06/13 18:49:25 phd Exp $" -__date__ = "$Date: 2004/06/13 18:49:25 $"[7:-2] +__version__ = "0.3.0" +__revision__ = "$Id: obexftp,v 1.4 2004/06/13 19:47:25 phd Exp $" +__date__ = "$Date: 2004/06/13 19:47:25 $"[7:-2] __author__ = "Oleg Broytmann " __copyright__ = "Copyright (C) 2004 PhiloSoft Design" @@ -48,8 +48,11 @@ __copyright__ = "Copyright (C) 2004 PhiloSoft Design" obexftp_prog = "/usr/local/obex/bin/obexftp" -import sys, os, time +import sys, time +import os, shutil import xml.dom.minidom +from tempfile import mkdtemp + def log_error(msg): sys.stderr.write(msg + '\n') @@ -137,7 +140,7 @@ def get_entries(dom, tag): return entries -def _recursive_list(obexftp_args, directory): +def recursive_list(obexftp_args, directory): """List the directory recursively""" debug = open("debug", 'a') for i in range(3): @@ -178,12 +181,26 @@ def _recursive_list(obexftp_args, directory): for entry in directories: fullpath = "%s/%s" % (directory, entry.name) if fullpath.startswith('//'): fullpath = fullpath[1:] - _recursive_list(obexftp_args, fullpath) + recursive_list(obexftp_args, fullpath) def mcobex_list(): """List the entire VFS""" obexftp_args = setup_transport() - _recursive_list(obexftp_args, '/') + recursive_list(obexftp_args, '/') + + +# A unique directory for temporary files + +tmpdir_name = None + +def setup_tmpdir(): + global tmpdir_name + tmpdir_name = mkdtemp(".tmp", "mcobex-") + os.chdir(tmpdir_name) + +def cleanup_tmpdir(): + os.chdir(os.pardir) + shutil.rmtree(tmpdir_name) def mcobex_copyout(): @@ -192,10 +209,10 @@ def mcobex_copyout(): dummy_filename = sys.argv[3] real_filename = sys.argv[4] - real_file = open(real_filename, 'w') - real_file.write("Copied from %s\n" % dummy_filename) - real_file.write("Copied to %s\n" % real_filename) - real_file.close() + setup_tmpdir() + os.system("%s %s -g '%s' 2>/dev/null" % (obexftp_prog, obexftp_args, dummy_filename)) + os.rename(os.path.basename(dummy_filename), real_filename) + cleanup_tmpdir() def mcobex_copyin(): @@ -203,11 +220,14 @@ def mcobex_copyin(): obexftp_args = setup_transport() dummy_filename = sys.argv[3] real_filename = sys.argv[4] - - real_file = open(real_filename + "-dummy.tmp", 'w') - real_file.write("Copied from %s\n" % real_filename) - real_file.write("Copied to %s\n" % dummy_filename) - real_file.close() + dirname, filname = os.path.split(dummy_filename) + + setup_tmpdir() + os.rename(real_filename, ) + os.system("%s %s -c '%s' -p '%s' 2>/dev/null" % (obexftp_prog, obexftp_args, + dirname, filename + )) + cleanup_tmpdir() def mcobex_rm():