]> arthur.barton.de Git - bup.git/blobdiff - cmd/save-cmd.py
Replace remaining print statements with print function
[bup.git] / cmd / save-cmd.py
index e48170a667c1629e222d32e59b5a76b97b3a98f3..bf2877ba240a0ff90c79745c5104217c4c1849ea 100755 (executable)
@@ -4,13 +4,19 @@ bup_python="$(dirname "$0")/bup-python" || exit $?
 exec "$bup_python" "$0" ${1+"$@"}
 """
 # end of bup preamble
-import sys, stat, time, math
-from cStringIO import StringIO
+
+from __future__ import absolute_import, print_function
 from errno import EACCES
+from io import BytesIO
+import os, sys, stat, time, math
 
 from bup import hashsplit, git, options, index, client, metadata, hlinkdb
-from bup.helpers import *
 from bup.hashsplit import GIT_MODE_TREE, GIT_MODE_FILE, GIT_MODE_SYMLINK
+from bup.helpers import (add_error, grafted_path_components, handle_ctrl_c,
+                         hostname, istty2, log, parse_date_or_fatal, parse_num,
+                         path_components, progress, qprogress, resolve_parent,
+                         saved_errors, stripped_path_components,
+                         userfullname, username, valid_save_name)
 
 
 optspec = """
@@ -69,13 +75,14 @@ if opt.graft:
             old_path, new_path = splitted_parameter
             if not (old_path and new_path):
                 o.fatal("a graft point cannot be empty")
-            graft_points.append((realpath(old_path), realpath(new_path)))
+            graft_points.append((resolve_parent(old_path),
+                                 resolve_parent(new_path)))
 
 is_reverse = os.environ.get('BUP_SERVER_REVERSE')
 if is_reverse and opt.remote:
     o.fatal("don't use -r in reverse mode; it's automatic")
 
-if opt.name and opt.name.startswith('.'):
+if opt.name and not valid_save_name(opt.name):
     o.fatal("'%s' is not a valid branch name" % opt.name)
 refname = opt.name and 'refs/heads/%s' % opt.name or None
 if opt.remote or is_reverse:
@@ -141,7 +148,7 @@ def _pop(force_tree, dir_metadata=None):
             metalist = [('', dir_metadata)] + metalist[1:]
         sorted_metalist = sorted(metalist, key = lambda x : x[0])
         metadata = ''.join([m[1].encode() for m in sorted_metalist])
-        metadata_f = StringIO(metadata)
+        metadata_f = BytesIO(metadata)
         mode, id = hashsplit.split_to_blob_or_tree(w.new_blob, w.new_tree,
                                                    [metadata_f],
                                                    keep_boundaries=False)
@@ -446,12 +453,14 @@ tree = _pop(force_tree = None,
             dir_metadata = metadata.Metadata() if root_collision else None)
 
 if opt.tree:
-    print tree.encode('hex')
+    print(tree.encode('hex'))
 if opt.commit or opt.name:
     msg = 'bup save\n\nGenerated by command:\n%r\n' % sys.argv
-    commit = w.new_commit(oldref, tree, date, msg)
+    userline = '%s <%s@%s>' % (userfullname(), username(), hostname())
+    commit = w.new_commit(tree, oldref, userline, date, None,
+                          userline, date, None, msg)
     if opt.commit:
-        print commit.encode('hex')
+        print(commit.encode('hex'))
 
 msr.close()
 w.close()  # must close before we can update the ref