summaryrefslogtreecommitdiffstats
path: root/src/gns_wiki.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/gns_wiki.py')
-rw-r--r--src/gns_wiki.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/src/gns_wiki.py b/src/gns_wiki.py
deleted file mode 100644
index 749a89f..0000000
--- a/src/gns_wiki.py
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 2013 rsiddharth <rsiddharth@ninthfloor.org>
-#
-# This work is free. You can redistribute it and/or modify it under
-# the terms of the Do What The Fuck You Want To Public License,
-# Version 2, as published by Sam Hocevar. See the COPYING file or
-# <http://www.wtfpl.net/> for more details.
-
-import xmlrpclib as xmlrpc
-from xmlrpclib import Fault
-import filecmp
-import os.path as path
-
-def get_topsecret(src_dir):
- """
- Returns the username, password & wikiurl
-
- They are stored in src/config/ directory in the topsecret.txt
- file.
- """
-
- try:
- secrets = open(path.join(src_dir,
- "config",
- "topsecret.txt"), "r").readlines()
-
- username = secrets[0].strip()
- password = secrets[1].strip()
- wikiurl = secrets[2].strip()
- except IOError:
- print "ERROR: Specify your wikiusername, password & wikiurl at \
-`src/config/topsecret.txt`. Look at the README for the proper format."
- exit(1)
-
- return username, password, wikiurl
-
-def update(table, src_dir):
- """
- Generates wiki page using table and pushes it to the wiki using XML-RPC.
- """
-
- # Code below adapted from
- # http://moinmo.in/MoinAPI/Examples#xmlrpc.putPage.28.29
-
- name, password, wikiurl = get_topsecret(src_dir)
- homewiki = xmlrpc.ServerProxy(wikiurl + "?action=xmlrpc2",
- allow_none=True)
- auth_token = homewiki.getAuthToken(name, password)
- mc = xmlrpc.MultiCall(homewiki)
- mc.applyAuthToken(auth_token)
- pagename = "Documentation/3/DifferencesWithDebian"
- wiki_page_content, update = generate_wiki_page(table, src_dir)
-
- if(update):
- # Send the updated wiki page to moin wiki:
- mc.putPage(pagename, wiki_page_content)
- result = mc()
- success = None
-
- try:
- success = result[1]
- except Fault, e:
- print e
-
- if success:
- print "Updated %s" % (pagename)
- update_wiki_page_locally(
- wiki_page_content,
- path.join(src_dir, "wiki-files",
- "differences-with-debian.txt"))
- else:
- print ">> Script did not update wiki <<"
- else:
- print "Nothing new! %s/%s was not updated" % (wikiurl,
- pagename)
-
-def generate_wiki_page(table, src_dir):
- """
- Generates the wiki page using the table.
-
- `differences-with-debian-head.txt' file, used by this function,
- contains text that precedes the table.
- """
-
- # generate wikipage
- diff_with_deb_head = path.join(src_dir,
- "wiki-files",
- "differences-with-debian-head.txt")
- wiki_page_content = open(diff_with_deb_head, "r").read() + "\n"
-
- for row in table:
- wiki_page_content += row + "\n"
-
- update = wiki_page_updated(wiki_page_content, src_dir)
-
- return wiki_page_content, update
-
-
-def wiki_page_updated(wiki_page_content, src_dir):
- """
- Returns True if the wiki page is updated
- """
-
- # write wikipage to temp file
- temp_file = open("/tmp/diff-with-deb-tmp.txt", "w")
- temp_file.write(wiki_page_content)
- temp_file.close()
-
- # this file contains the wiki page last generated by the script.
- diff_with_deb = path.join(src_dir,
- "wiki-files",
- "differences-with-debian.txt")
-
- # first check if the file exists
- if(path.isfile(diff_with_deb)):
- # filecmp.cmp returns True if both the file are same.
- update = (filecmp.cmp(temp_file.name,
- diff_with_deb, 1) == False)
- else:
- # we don't have a local copy of the wiki page. So, let's
- # update the wiki.
- update = True
-
- return update
-
-
-def update_wiki_page_locally(wiki_page_content, filename):
- """
- Writes the wiki page locally to `filename'
- """
-
- wiki_file = open(filename, "w")
- wiki_file.write(wiki_page_content)
- wiki_file.close()
-