Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. trac-admin /path/to/trac wiki export <wiki page name>
  2.  
  3. import os
  4. import xmlrpc.client
  5. import getpass
  6. import urllib.parse
  7.  
  8.  
  9. def add_auth(url):
  10. host = urllib.parse.urlparse(url).netloc
  11. realm = os.environ.get('TRAC_REALM', host)
  12. username = getpass.getuser()
  13. try:
  14. import keyring
  15. password = keyring.get_password(realm, username)
  16. except Exception:
  17. password = getpass.getpass(f"password for {username}@{realm}: ")
  18.  
  19. if password:
  20. url = url.replace('://', f'://{username}:{password}@')
  21.  
  22. return url
  23.  
  24.  
  25. def main():
  26. trac_url = add_auth(os.environ['TRAC_URL'])
  27. rpc_url = urllib.parse.urljoin(trac_url, 'login/xmlrpc')
  28. trac = xmlrpc.client.ServerProxy(rpc_url)
  29.  
  30. for page in trac.wiki.getAllPages():
  31. filename = f'{page}.html'.lstrip('/')
  32. dir = os.path.dirname(filename)
  33. dir and os.makedirs(dir, exist_ok=True)
  34. with open(filename, 'w') as f:
  35. doc = trac.wiki.getPageHTML(page)
  36. f.write(doc)
  37.  
  38.  
  39. __name__ == '__main__' and main()
  40.  
  41. $ TRAC_URL=http://mytrac.mydomain.com python3.6 export-wiki.py
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement