|
|
@@ -13,6 +13,7 @@
|
|
|
# See the License for the specific language governing permissions and
|
|
|
# limitations under the License.
|
|
|
|
|
|
+from __future__ import print_function
|
|
|
import netrc
|
|
|
from optparse import SUPPRESS_HELP
|
|
|
import os
|
|
|
@@ -234,9 +235,10 @@ later is required to fix a server side protocol bug.
|
|
|
did_lock = True
|
|
|
|
|
|
if not success:
|
|
|
- print >>sys.stderr, 'error: Cannot fetch %s' % project.name
|
|
|
+ print('error: Cannot fetch %s' % project.name, file=sys.stderr)
|
|
|
if opt.force_broken:
|
|
|
- print >>sys.stderr, 'warn: --force-broken, continuing to sync'
|
|
|
+ print('warn: --force-broken, continuing to sync',
|
|
|
+ file=sys.stderr)
|
|
|
else:
|
|
|
raise _FetchError()
|
|
|
|
|
|
@@ -265,9 +267,9 @@ later is required to fix a server side protocol bug.
|
|
|
clone_bundle=not opt.no_clone_bundle):
|
|
|
fetched.add(project.gitdir)
|
|
|
else:
|
|
|
- print >>sys.stderr, 'error: Cannot fetch %s' % project.name
|
|
|
+ print('error: Cannot fetch %s' % project.name, file=sys.stderr)
|
|
|
if opt.force_broken:
|
|
|
- print >>sys.stderr, 'warn: --force-broken, continuing to sync'
|
|
|
+ print('warn: --force-broken, continuing to sync', file=sys.stderr)
|
|
|
else:
|
|
|
sys.exit(1)
|
|
|
else:
|
|
|
@@ -300,7 +302,7 @@ later is required to fix a server side protocol bug.
|
|
|
|
|
|
# If we saw an error, exit with code 1 so that other scripts can check.
|
|
|
if err_event.isSet():
|
|
|
- print >>sys.stderr, '\nerror: Exited sync due to fetch errors'
|
|
|
+ print('\nerror: Exited sync due to fetch errors', file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
|
|
|
pm.end()
|
|
|
@@ -353,7 +355,7 @@ later is required to fix a server side protocol bug.
|
|
|
t.join()
|
|
|
|
|
|
if err_event.isSet():
|
|
|
- print >>sys.stderr, '\nerror: Exited sync due to gc errors'
|
|
|
+ print('\nerror: Exited sync due to gc errors', file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
|
|
|
def UpdateProjectList(self):
|
|
|
@@ -390,12 +392,14 @@ later is required to fix a server side protocol bug.
|
|
|
groups = None)
|
|
|
|
|
|
if project.IsDirty():
|
|
|
- print >>sys.stderr, 'error: Cannot remove project "%s": \
|
|
|
-uncommitted changes are present' % project.relpath
|
|
|
- print >>sys.stderr, ' commit changes, then run sync again'
|
|
|
+ print('error: Cannot remove project "%s": uncommitted changes'
|
|
|
+ 'are present' % project.relpath, file=sys.stderr)
|
|
|
+ print(' commit changes, then run sync again',
|
|
|
+ file=sys.stderr)
|
|
|
return -1
|
|
|
else:
|
|
|
- print >>sys.stderr, 'Deleting obsolete path %s' % project.worktree
|
|
|
+ print('Deleting obsolete path %s' % project.worktree,
|
|
|
+ file=sys.stderr)
|
|
|
shutil.rmtree(project.worktree)
|
|
|
# Try deleting parent subdirs if they are empty
|
|
|
project_dir = os.path.dirname(project.worktree)
|
|
|
@@ -423,24 +427,24 @@ uncommitted changes are present' % project.relpath
|
|
|
self.jobs = min(self.jobs, (soft_limit - 5) / 3)
|
|
|
|
|
|
if opt.network_only and opt.detach_head:
|
|
|
- print >>sys.stderr, 'error: cannot combine -n and -d'
|
|
|
+ print('error: cannot combine -n and -d', file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
if opt.network_only and opt.local_only:
|
|
|
- print >>sys.stderr, 'error: cannot combine -n and -l'
|
|
|
+ print('error: cannot combine -n and -l', file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
if opt.manifest_name and opt.smart_sync:
|
|
|
- print >>sys.stderr, 'error: cannot combine -m and -s'
|
|
|
+ print('error: cannot combine -m and -s', file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
if opt.manifest_name and opt.smart_tag:
|
|
|
- print >>sys.stderr, 'error: cannot combine -m and -t'
|
|
|
+ print('error: cannot combine -m and -t', file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
if opt.manifest_server_username or opt.manifest_server_password:
|
|
|
if not (opt.smart_sync or opt.smart_tag):
|
|
|
- print >>sys.stderr, 'error: -u and -p may only be combined with ' \
|
|
|
- '-s or -t'
|
|
|
+ print('error: -u and -p may only be combined with -s or -t',
|
|
|
+ file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
if None in [opt.manifest_server_username, opt.manifest_server_password]:
|
|
|
- print >>sys.stderr, 'error: both -u and -p must be given'
|
|
|
+ print('error: both -u and -p must be given', file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
|
|
|
if opt.manifest_name:
|
|
|
@@ -448,8 +452,8 @@ uncommitted changes are present' % project.relpath
|
|
|
|
|
|
if opt.smart_sync or opt.smart_tag:
|
|
|
if not self.manifest.manifest_server:
|
|
|
- print >>sys.stderr, \
|
|
|
- 'error: cannot smart sync: no manifest server defined in manifest'
|
|
|
+ print('error: cannot smart sync: no manifest server defined in'
|
|
|
+ 'manifest', file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
|
|
|
manifest_server = self.manifest.manifest_server
|
|
|
@@ -464,7 +468,8 @@ uncommitted changes are present' % project.relpath
|
|
|
try:
|
|
|
info = netrc.netrc()
|
|
|
except IOError:
|
|
|
- print >>sys.stderr, '.netrc file does not exist or could not be opened'
|
|
|
+ print('.netrc file does not exist or could not be opened',
|
|
|
+ file=sys.stderr)
|
|
|
else:
|
|
|
try:
|
|
|
parse_result = urlparse.urlparse(manifest_server)
|
|
|
@@ -474,10 +479,10 @@ uncommitted changes are present' % project.relpath
|
|
|
except TypeError:
|
|
|
# TypeError is raised when the given hostname is not present
|
|
|
# in the .netrc file.
|
|
|
- print >>sys.stderr, 'No credentials found for %s in .netrc' % \
|
|
|
- parse_result.hostname
|
|
|
+ print('No credentials found for %s in .netrc'
|
|
|
+ % parse_result.hostname, file=sys.stderr)
|
|
|
except netrc.NetrcParseError as e:
|
|
|
- print >>sys.stderr, 'Error parsing .netrc file: %s' % e
|
|
|
+ print('Error parsing .netrc file: %s' % e, file=sys.stderr)
|
|
|
|
|
|
if (username and password):
|
|
|
manifest_server = manifest_server.replace('://', '://%s:%s@' %
|
|
|
@@ -516,20 +521,21 @@ uncommitted changes are present' % project.relpath
|
|
|
finally:
|
|
|
f.close()
|
|
|
except IOError:
|
|
|
- print >>sys.stderr, 'error: cannot write manifest to %s' % \
|
|
|
- manifest_path
|
|
|
+ print('error: cannot write manifest to %s' % manifest_path,
|
|
|
+ file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
self.manifest.Override(manifest_name)
|
|
|
else:
|
|
|
- print >>sys.stderr, 'error: %s' % manifest_str
|
|
|
+ print('error: %s' % manifest_str, file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
except (socket.error, IOError, xmlrpclib.Fault) as e:
|
|
|
- print >>sys.stderr, 'error: cannot connect to manifest server %s:\n%s' % (
|
|
|
- self.manifest.manifest_server, e)
|
|
|
+ print('error: cannot connect to manifest server %s:\n%s'
|
|
|
+ % (self.manifest.manifest_server, e), file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
except xmlrpclib.ProtocolError as e:
|
|
|
- print >>sys.stderr, 'error: cannot connect to manifest server %s:\n%d %s' % (
|
|
|
- self.manifest.manifest_server, e.errcode, e.errmsg)
|
|
|
+ print('error: cannot connect to manifest server %s:\n%d %s'
|
|
|
+ % (self.manifest.manifest_server, e.errcode, e.errmsg),
|
|
|
+ file=sys.stderr)
|
|
|
sys.exit(1)
|
|
|
|
|
|
rp = self.manifest.repoProject
|
|
|
@@ -585,14 +591,14 @@ uncommitted changes are present' % project.relpath
|
|
|
if project.worktree:
|
|
|
project.Sync_LocalHalf(syncbuf)
|
|
|
pm.end()
|
|
|
- print >>sys.stderr
|
|
|
+ print(file=sys.stderr)
|
|
|
if not syncbuf.Finish():
|
|
|
sys.exit(1)
|
|
|
|
|
|
# If there's a notice that's supposed to print at the end of the sync, print
|
|
|
# it now...
|
|
|
if self.manifest.notice:
|
|
|
- print self.manifest.notice
|
|
|
+ print(self.manifest.notice)
|
|
|
|
|
|
def _PostRepoUpgrade(manifest, quiet=False):
|
|
|
wrapper = WrapperModule()
|
|
|
@@ -604,27 +610,28 @@ def _PostRepoUpgrade(manifest, quiet=False):
|
|
|
|
|
|
def _PostRepoFetch(rp, no_repo_verify=False, verbose=False):
|
|
|
if rp.HasChanges:
|
|
|
- print >>sys.stderr, 'info: A new version of repo is available'
|
|
|
- print >>sys.stderr, ''
|
|
|
+ print('info: A new version of repo is available', file=sys.stderr)
|
|
|
+ print(file=sys.stderr)
|
|
|
if no_repo_verify or _VerifyTag(rp):
|
|
|
syncbuf = SyncBuffer(rp.config)
|
|
|
rp.Sync_LocalHalf(syncbuf)
|
|
|
if not syncbuf.Finish():
|
|
|
sys.exit(1)
|
|
|
- print >>sys.stderr, 'info: Restarting repo with latest version'
|
|
|
+ print('info: Restarting repo with latest version', file=sys.stderr)
|
|
|
raise RepoChangedException(['--repo-upgraded'])
|
|
|
else:
|
|
|
- print >>sys.stderr, 'warning: Skipped upgrade to unverified version'
|
|
|
+ print('warning: Skipped upgrade to unverified version', file=sys.stderr)
|
|
|
else:
|
|
|
if verbose:
|
|
|
- print >>sys.stderr, 'repo version %s is current' % rp.work_git.describe(HEAD)
|
|
|
+ print('repo version %s is current' % rp.work_git.describe(HEAD),
|
|
|
+ file=sys.stderr)
|
|
|
|
|
|
def _VerifyTag(project):
|
|
|
gpg_dir = os.path.expanduser('~/.repoconfig/gnupg')
|
|
|
if not os.path.exists(gpg_dir):
|
|
|
- print >>sys.stderr,\
|
|
|
-"""warning: GnuPG was not available during last "repo init"
|
|
|
-warning: Cannot automatically authenticate repo."""
|
|
|
+ print('warning: GnuPG was not available during last "repo init"\n'
|
|
|
+ 'warning: Cannot automatically authenticate repo."""',
|
|
|
+ file=sys.stderr)
|
|
|
return True
|
|
|
|
|
|
try:
|
|
|
@@ -638,10 +645,9 @@ warning: Cannot automatically authenticate repo."""
|
|
|
if rev.startswith(R_HEADS):
|
|
|
rev = rev[len(R_HEADS):]
|
|
|
|
|
|
- print >>sys.stderr
|
|
|
- print >>sys.stderr,\
|
|
|
- "warning: project '%s' branch '%s' is not signed" \
|
|
|
- % (project.name, rev)
|
|
|
+ print(file=sys.stderr)
|
|
|
+ print("warning: project '%s' branch '%s' is not signed"
|
|
|
+ % (project.name, rev), file=sys.stderr)
|
|
|
return False
|
|
|
|
|
|
env = os.environ.copy()
|
|
|
@@ -660,10 +666,10 @@ warning: Cannot automatically authenticate repo."""
|
|
|
proc.stderr.close()
|
|
|
|
|
|
if proc.wait() != 0:
|
|
|
- print >>sys.stderr
|
|
|
- print >>sys.stderr, out
|
|
|
- print >>sys.stderr, err
|
|
|
- print >>sys.stderr
|
|
|
+ print(file=sys.stderr)
|
|
|
+ print(out, file=sys.stderr)
|
|
|
+ print(err, file=sys.stderr)
|
|
|
+ print(file=sys.stderr)
|
|
|
return False
|
|
|
return True
|
|
|
|