commit a50d1f13385d78cdef9faa01d45d349af7d697b6 Author: Pete Travis immanetize@fedoraproject.org Date: Fri Feb 28 16:33:43 2014 -0700
framing up functionality to store beat writers instructions in each beats talk: page
tools/pybeats/beats.py | 101 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 89 insertions(+), 12 deletions(-) --- diff --git a/tools/pybeats/beats.py b/tools/pybeats/beats.py index d7bd0bb..7cb5008 100644 --- a/tools/pybeats/beats.py +++ b/tools/pybeats/beats.py @@ -1,14 +1,10 @@ #!/usr/bin/python import mwclient import sys +import os
-username = 'yourFASID' -password = 'DEADBEEF' -site = mwclient.Site('fedoraproject.org', path = '/w/') -if username and password: - site.login(username, password) - -beats = ( "Documentation_Beats_Installer", +def beats_list(): + beat_list = ( "Documentation_Beats_Installer", "Documentation_Architecture_Specific_Content_Beat", "Documentation_x86_Specific_Content_Beat", "Documentation_x86_64_Specific_Beat", @@ -57,7 +53,60 @@ beats = ( "Documentation_Beats_Installer", "Documentation_Musicians_Beat", "Documentation_Monitoring_Beat" ) + return beat_list + +# this just doesn't work +#beatlist = beats_list() +#sys.path.append( '%s/beats_info' % os.getcwd() ) +#for beat in beatlist: +# print("importing %s" % beat) +# try: +# module_object = __import__(beat) +# except: +# print("failed to open module object for %s" % beat) +# try: +# locals()[beat] = module_object +# except: +# print("import of %s beat failed" % beat) +
+def create_beats_skeleton(): + beatlist = beats_list() + if not os.path.isdir("beats_info"): + os.mkdir("beats_info") + initfile = "beats_info/__init__.py" + doinit = open(initfile, 'w') + doinit.write('#!/usr/bin/python') + doinit.close() + for beat in beatlist: + filename = "beats_info/" + beat + ".py" + # filename = beat + ".py" + f = open(filename, 'w') + f.write('#!/usr/bin/python\n\n') + f.write('###\n# Beat definition and guidance for %s\n###\n\n' % beat) + f.write('def return_beat():\n') + f.write(' beat = {}\n') + f.write(' beat['beat_name'] = "%s"\n' % beat) + f.write(' beat['beat_overview'] = ""\n') + f.write(' beat['suggested_packages'] = ()\n') + f.write(' beat['suggested_contacts'] = ()\n') + f.write(' beat['suggested_reading'] = ()\n') + f.write(' return(beat)\n') + f.close() +#try: +# import_beats() +## import beats_info +#except: +# print("import fail") +# create_beats_skeleton() +# + +def setup_wiki_connection(username, password): + site = mwclient.Site('fedoraproject.org', path = '/w/') + if username and password: + site.login(username, password) + return site + footer = """ [[Category:Docs Project]] [[Category:Draft documentation]] @@ -66,9 +115,37 @@ footer = """ header = "{{header|docs}}" docs_beat_open = "{{Docs_beat_open}}"
-for beat in beats: - page = site.Pages[beat] - text = page.edit() - string = header + docs_beat_open + footer - page.save(string) +def clearbeats(beats, string): + for beat in beats: + page = site.Pages[beat] + text = page.edit() + string = header + docs_beat_open + footer + page.save(string) + +def update_talk(): + beatlist = beats_list() + for beat in beatlist: + module = __import__(beat) + info = module.return_beat() + talk_page = "Talk:" + beat + page = site.Pages[talk_page] + talk_string = "{{admon/important|Page is autogenerated|This page is autogenerated by pybeats in tools.git . Discuss your beat on the docs mailing list, directions only here.}}\n" + talk_string += "==%s Writer Guide==\n" % info['beat_name'] + talk_string += "===Overview===\n%s\n" % info['beat_overview'] + talk_string += "===Suggested Packages===\n" + for package in info['suggested_packages']: + if package: + talk_string += "* %s\n" % package + talk_string += "===Suggested Reading===\n" + for homework in info['suggested_reading']: + if homework: + talk_string += "* %s\n" % homework + talk_string += "===Suggested Contacts===\n" + for person in info['suggested_contacts']: + if person: + talk_string += "* %s\n" % person + + + +
docs-commits@lists.fedoraproject.org