def _create_auth_baton(pool, password_stores): """Create a Subversion authentication baton. """ # Give the client context baton a suite of authentication # providers.h platform_specific = [ 'svn_auth_get_gnome_keyring_simple_provider', 'svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider', 'svn_auth_get_keychain_simple_provider', 'svn_auth_get_keychain_ssl_client_cert_pw_provider', 'svn_auth_get_kwallet_simple_provider', 'svn_auth_get_kwallet_ssl_client_cert_pw_provider', 'svn_auth_get_ssl_client_cert_file_provider', 'svn_auth_get_windows_simple_provider', 'svn_auth_get_windows_ssl_server_trust_provider', ] providers = [] # Platform-dependant authentication methods getprovider = getattr(core, 'svn_auth_get_platform_specific_provider', None) if getprovider: # Available in svn >= 1.6 if password_stores is None: password_stores = ('gnome_keyring', 'keychain', 'kwallet', 'windows') for name in password_stores: for type in ('simple', 'ssl_client_cert_pw', 'ssl_server_trust'): p = getprovider(name, type, pool) if p: providers.append(p) else: for p in platform_specific: if getattr(core, p, None) is not None: try: providers.append(getattr(core, p)()) except RuntimeError: pass providers += [ client.get_simple_provider(), client.get_username_provider(), client.get_ssl_client_cert_file_provider(), client.get_ssl_client_cert_pw_file_provider(), client.get_ssl_server_trust_file_provider(), ] if _prompt: providers += [ client.get_simple_prompt_provider(_simple, 2), client.get_username_prompt_provider(_username, 2), client.get_ssl_client_cert_prompt_provider(_ssl_client_cert, 2), client.get_ssl_client_cert_pw_prompt_provider( _ssl_client_cert_pw, 2), client.get_ssl_server_trust_prompt_provider(_ssl_server_trust), ] return core.svn_auth_open(providers, pool)
def _create_auth_baton(pool, password_stores): """Create a Subversion authentication baton. """ # Give the client context baton a suite of authentication # providers.h platform_specific = ['svn_auth_get_gnome_keyring_simple_provider', 'svn_auth_get_gnome_keyring_ssl_client_cert_pw_provider', 'svn_auth_get_keychain_simple_provider', 'svn_auth_get_keychain_ssl_client_cert_pw_provider', 'svn_auth_get_kwallet_simple_provider', 'svn_auth_get_kwallet_ssl_client_cert_pw_provider', 'svn_auth_get_ssl_client_cert_file_provider', 'svn_auth_get_windows_simple_provider', 'svn_auth_get_windows_ssl_server_trust_provider', ] providers = [] # Platform-dependant authentication methods getprovider = getattr(core, 'svn_auth_get_platform_specific_provider', None) if getprovider: # Available in svn >= 1.6 if password_stores is None: password_stores = ('gnome_keyring', 'keychain', 'kwallet', 'windows') for name in password_stores: for type in ('simple', 'ssl_client_cert_pw', 'ssl_server_trust'): p = getprovider(name, type, pool) if p: providers.append(p) else: for p in platform_specific: if hasattr(core, p): try: providers.append(getattr(core, p)()) except RuntimeError: pass providers += [ client.get_simple_provider(), client.get_username_provider(), client.get_ssl_client_cert_file_provider(), client.get_ssl_client_cert_pw_file_provider(), client.get_ssl_server_trust_file_provider(), ] if _prompt: providers += [ client.get_simple_prompt_provider(_simple, 2), client.get_username_prompt_provider(_username, 2), client.get_ssl_client_cert_prompt_provider(_ssl_client_cert, 2), client.get_ssl_client_cert_pw_prompt_provider(_ssl_client_cert_pw, 2), client.get_ssl_server_trust_prompt_provider(_ssl_server_trust), ] return core.svn_auth_open(providers, pool)
def main(): try: url, peg_revision, start_revision, end_revision = parse_args( sys.argv[1:]) except Exception as e: sys.stderr.write("""Usage: %s URL[@PEG-REV] [START-REV[:END-REV]] Trace the history of URL@PEG-REV, printing the location(s) of its existence between START-REV and END-REV. If START-REV is not provided, the entire history of URL@PEG-REV back to its origin will be displayed. If provided, START-REV must not be younger than PEG-REV. If END-REV is provided, it must not be younger than START-REV. (This is a wrapper around Subversion's svn_ra_get_location_segments() API.) ERROR: %s """ % (os.path.basename(sys.argv[0]), str(e))) sys.exit(1) core.svn_config_ensure(None) ctx = client.svn_client_create_context() ctx.config = core.svn_config_get_config(None) # Make sure that these are at the start of the list, so passwords from # gnome-keyring / kwallet are checked before asking for new passwords. providers = core.svn_auth_get_platform_specific_client_providers( ctx.config['config'], None) providers.extend([ client.get_simple_provider(), core.svn_auth_get_ssl_server_trust_file_provider(), core.svn_auth_get_simple_prompt_provider(prompt_func_simple_prompt, 2), core.svn_auth_get_ssl_server_trust_prompt_provider( prompt_func_ssl_unknown_cert), client.get_username_provider(), client.get_ssl_server_trust_file_provider(), client.get_ssl_client_cert_file_provider(), client.get_ssl_client_cert_pw_file_provider(), ]) ctx.auth_baton = core.svn_auth_open(providers) if hasattr(core, 'svn_auth_set_gnome_keyring_unlock_prompt_func'): core.svn_auth_set_gnome_keyring_unlock_prompt_func( ctx.auth_baton, prompt_func_gnome_keyring_prompt) ra_callbacks = ra.callbacks_t() ra_callbacks.auth_baton = ctx.auth_baton ra_session = ra.open(url, ra_callbacks, None, ctx.config) ra.get_location_segments(ra_session, "", peg_revision, start_revision, end_revision, printer)
def main(): try: url, peg_revision, start_revision, end_revision = parse_args(sys.argv[1:]) except Exception as e: sys.stderr.write("""Usage: %s URL[@PEG-REV] [START-REV[:END-REV]] Trace the history of URL@PEG-REV, printing the location(s) of its existence between START-REV and END-REV. If START-REV is not provided, the entire history of URL@PEG-REV back to its origin will be displayed. If provided, START-REV must not be younger than PEG-REV. If END-REV is provided, it must not be younger than START-REV. (This is a wrapper around Subversion's svn_ra_get_location_segments() API.) ERROR: %s """ % (os.path.basename(sys.argv[0]), str(e))) sys.exit(1) core.svn_config_ensure(None) ctx = client.svn_client_create_context() ctx.config = core.svn_config_get_config(None) # Make sure that these are at the start of the list, so passwords from # gnome-keyring / kwallet are checked before asking for new passwords. providers = core.svn_auth_get_platform_specific_client_providers(ctx.config['config'], None) providers.extend([ client.get_simple_provider(), core.svn_auth_get_ssl_server_trust_file_provider(), core.svn_auth_get_simple_prompt_provider(prompt_func_simple_prompt, 2), core.svn_auth_get_ssl_server_trust_prompt_provider(prompt_func_ssl_unknown_cert), client.get_username_provider(), client.get_ssl_server_trust_file_provider(), client.get_ssl_client_cert_file_provider(), client.get_ssl_client_cert_pw_file_provider(), ]) ctx.auth_baton = core.svn_auth_open(providers) if hasattr(core, 'svn_auth_set_gnome_keyring_unlock_prompt_func'): core.svn_auth_set_gnome_keyring_unlock_prompt_func(ctx.auth_baton, prompt_func_gnome_keyring_prompt) ra_callbacks = ra.callbacks_t() ra_callbacks.auth_baton = ctx.auth_baton ra_session = ra.open(url, ra_callbacks, None, ctx.config) ra.get_location_segments(ra_session, "", peg_revision, start_revision, end_revision, printer)
def __init__(self, config_dir=None): core.svn_config_ensure(config_dir) self.ctx = client.ctx_t() self.ctx.auth_baton = core.svn_auth_open([ client.get_simple_provider(), client.get_username_provider(), client.get_ssl_server_trust_file_provider(), client.get_ssl_client_cert_file_provider(), client.get_ssl_client_cert_pw_file_provider(), ]) self.ctx.config = core.svn_config_get_config(config_dir) if config_dir is not None: core.svn_auth_set_parameter(self.ctx.auth_baton, core.SVN_AUTH_PARAM_CONFIG_DIR, config_dir) self.ra_callbacks = ra.callbacks_t() self.ra_callbacks.auth_baton = self.ctx.auth_baton self.base_optrev = make_optrev('BASE')
(This is a wrapper around Subversion's svn_ra_get_location_segments() API.) ERROR: %s """ % (os.path.basename(sys.argv[0]), str(e))) sys.exit(1) core.svn_config_ensure(None) ctx = client.svn_client_create_context() ctx.config = core.svn_config_get_config(None) # Make sure that these are at the start of the list, so passwords from # gnome-keyring / kwallet are checked before asking for new passwords. providers = core.svn_auth_get_platform_specific_client_providers( ctx.config['config'], None) providers.extend([ client.get_simple_provider(), core.svn_auth_get_ssl_server_trust_file_provider(), core.svn_auth_get_simple_prompt_provider(prompt_func_simple_prompt, 2), core.svn_auth_get_ssl_server_trust_prompt_provider( prompt_func_ssl_unknown_cert), client.get_username_provider(), client.get_ssl_server_trust_file_provider(), client.get_ssl_client_cert_file_provider(), client.get_ssl_client_cert_pw_file_provider(), ]) ctx.auth_baton = core.svn_auth_open(providers) if hasattr(core, 'svn_auth_set_gnome_keyring_unlock_prompt_func'): core.svn_auth_set_gnome_keyring_unlock_prompt_func( ctx.auth_baton, prompt_func_gnome_keyring_prompt)
(This is a wrapper around Subversion's svn_ra_get_location_segments() API.) ERROR: %s """ % (os.path.basename(sys.argv[0]), str(e))) sys.exit(1) core.svn_config_ensure(None) ctx = client.svn_client_create_context() ctx.config = core.svn_config_get_config(None) # Make sure that these are at the start of the list, so passwords from # gnome-keyring / kwallet are checked before asking for new passwords. providers = core.svn_auth_get_platform_specific_client_providers(ctx.config['config'], None) providers.extend([ client.get_simple_provider(), core.svn_auth_get_ssl_server_trust_file_provider(), core.svn_auth_get_simple_prompt_provider(prompt_func_simple_prompt, 2), core.svn_auth_get_ssl_server_trust_prompt_provider(prompt_func_ssl_unknown_cert), client.get_username_provider(), client.get_ssl_server_trust_file_provider(), client.get_ssl_client_cert_file_provider(), client.get_ssl_client_cert_pw_file_provider(), ]) ctx.auth_baton = core.svn_auth_open(providers) if hasattr(core, 'svn_auth_set_gnome_keyring_unlock_prompt_func'): core.svn_auth_set_gnome_keyring_unlock_prompt_func(ctx.auth_baton, prompt_func_gnome_keyring_prompt) ra_callbacks = ra.callbacks_t()