Exemplo n.º 1
0
    def changeset_added(self, repos, changeset):
        newchange = changeset
        repo = RepositoryManager(self.env).repository_dir
        repdir = repo.split('.git')[0]
        changes = list(newchange.get_changes())
        print '....handling wikipages.......'
        for change in changes:
            directory = change[0].split('/')[0]
            filename = change[0].split('/')[1]
            pagename = filename.split('.txt')[0]
            extension = filename.split(pagename)[1]

            if (directory == 'wiki' and extension == '.txt'):
                path = repdir + change[0]

                if change[2] == 'edit' or change[2] == 'add':
                    self.add_wiki_file_to_trac(pagename, path)

                elif change[2] == 'delete':
                    self.delete_wiki_page_in_trac(pagename)
                    print (filename + ': wikipage removed.')

                else:
                    print 'Nothing todo.'
            else:
                print 'File was no textfile. Keep going.'
            print '....wikipage handling done......have a nice day :)!'
Exemplo n.º 2
0
    def wiki_page_deleted(self, page):
        repo = RepositoryManager(self.env).repository_dir
        repdir = repo.split('.git')[0]

        os.chdir(repdir + "wiki/")

        subprocess.call(["git", "rm", repdir + "wiki/" + page.name + ".txt"])
        subprocess.call(["git", "commit", "-m", page.name + ".txt removed."])

        os.chdir(self.env.path)
Exemplo n.º 3
0
    def wiki_page_added(self, page):
        repo = RepositoryManager(self.env).repository_dir
        repdir = repo.split('.git')[0]

        subprocess.call(["trac-admin", "", "wiki export", page.name, repdir + "wiki/" + "tmp.txt"])
        subprocess.call(["mv", repdir + "wiki/" + "tmp.txt", repdir + "wiki/" + page.name + ".txt"])
        os.chdir(repdir + "wiki/")

        subprocess.call(["git", "add", repdir + "wiki/" + page.name + ".txt"])
        subprocess.call(["git", "commit", "-m", page.name + ".txt added."])

        os.chdir(self.env.path)
Exemplo n.º 4
0
    def process_request(self, req):
        global page_version
        repos = RepositoryManager(self.env).repository_dir
        repdir = repos.split('.git')[0]
        dirList = os.listdir(repdir + 'wiki')
        dirList.sort()
        count_do = 0
        count_no = 0

        for sFile in dirList:
            if sFile.find('.txt') == -1:
                continue
            try:
                filename = os.path.splitext(sFile)[0]
                if filename not in page_version:
                    page_version[filename] = 0
                content = read_file(repdir + 'wiki/' + sFile)
                page = WikiPage(self.env, filename)
                page.text = content.decode('unicode-escape')
                if page_version[filename] != page.version:
                    print (filename + ': local page version does not match online version!')
                    print ('Local version: ' + str(page_version[filename]) + ' <-> online version: ' + str(page.version) + '. Overwrite? (y/n)')
                    user_input = raw_input()
                    if user_input == 'y':
                        page.save(author='me', comment='', remote_addr='127.0.0.1')
                        count_do = count_do + 1
                        print (filename + ' created/modified as wiki page from version ' + str(page_version[filename]) + ' to version ' + str(page.version))
                        page_version[filename] = page.version
                    else:
                        print 'Page not created/modified'
                        count_no = count_no + 1
                        continue
                else:
                    page.save(author='me', comment='', remote_addr='127.0.0.1')
                    count_do = count_do + 1
                    print (filename + ' created/modified as wiki page from version ' + str(page_version[filename]) + ' to version ' + str(page.version))
                    page_version[filename] = page.version
            except:
                count_no = count_no + 1
                print (filename + ' not modified or changed; remained untouched')
                continue

        cont = str(count_do) + ' wiki pages created/modified and ' + str(count_no) + ' untouched'
        req.send_response(200)
        req.send_header('Content-Type', 'text/plain')
        req.send_header('Content-Length', len(cont))
        req.end_headers()
        req.write(cont)