]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/cmd/init.py
Remove Client __del__ in favor of context management
[bup.git] / lib / bup / cmd / init.py
index 2dff0569e15de1065b6da2db2d9b8b40ae21ffdb..56fd123e33000f9025fac436ff69b61c86b352c2 100755 (executable)
@@ -1,27 +1,9 @@
-#!/bin/sh
-"""": # -*-python-*-
-# https://sourceware.org/bugzilla/show_bug.cgi?id=26034
-export "BUP_ARGV_0"="$0"
-arg_i=1
-for arg in "$@"; do
-    export "BUP_ARGV_${arg_i}"="$arg"
-    shift
-    arg_i=$((arg_i + 1))
-done
-# Here to end of preamble replaced during install
-bup_python="$(dirname "$0")/../../../config/bin/python" || exit $?
-exec "$bup_python" "$0"
-"""
-# end of bup preamble
 
 from __future__ import absolute_import
+import sys
 
-# Intentionally replace the dirname "$0" that python prepends
-import os, sys
-sys.path[0] = os.path.dirname(os.path.realpath(__file__)) + '/../..'
-
-from bup import compat, git, options, client
-from bup.helpers import log, saved_errors
+from bup import git, options, client
+from bup.helpers import log
 from bup.compat import argv_bytes
 
 
@@ -30,20 +12,21 @@ optspec = """
 --
 r,remote=  remote repository path
 """
-o = options.Options(optspec)
-opt, flags, extra = o.parse(compat.argv[1:])
 
-if extra:
-    o.fatal("no arguments expected")
+def main(argv):
+    o = options.Options(optspec)
+    opt, flags, extra = o.parse_bytes(argv[1:])
 
+    if extra:
+        o.fatal("no arguments expected")
 
-try:
-    git.init_repo()  # local repo
-except git.GitError as e:
-    log("bup: error: could not init repository: %s" % e)
-    sys.exit(1)
+    try:
+        git.init_repo()  # local repo
+    except git.GitError as e:
+        log("bup: error: could not init repository: %s" % e)
+        sys.exit(1)
 
-if opt.remote:
-    git.check_repo_or_die()
-    cli = client.Client(argv_bytes(opt.remote), create=True)
-    cli.close()
+    if opt.remote:
+        git.check_repo_or_die()
+        with client.Client(argv_bytes(opt.remote), create=True):
+            pass