PreCommitCtrl.java
- package org.docascode.hooks;
- import org.docascode.utils.Utils;
- import org.docx4j.TextUtils;
- import org.docx4j.openpackaging.exceptions.Docx4JException;
- import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
- import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
- import org.eclipse.jgit.api.Git;
- import org.eclipse.jgit.api.errors.GitAPIException;
- import org.eclipse.jgit.diff.DiffEntry;
- import java.io.*;
- import java.util.List;
- public class PreCommitCtrl {
- public void run() throws Exception {
- try {
- Git git = Git.open(Utils.getRepository().getTopLevel());
- List<DiffEntry> diffList = git.diff().setCached(true).call();
- for (DiffEntry entry : diffList){
- Utils.info(entry.getNewPath());
- WordprocessingMLPackage pkg = WordprocessingMLPackage.load(new File(Utils.getRepository().getTopLevel().getAbsolutePath()+"/"+entry.getNewPath()));
- MainDocumentPart documentPart = pkg.getMainDocumentPart();
- org.docx4j.wml.Document wmlDocumentEl = (org.docx4j.wml.Document)documentPart.getJaxbElement();
- OutputStream os = new FileOutputStream(Utils.getRepository().getTopLevel().getAbsolutePath()+"/.docascode/markdown/test.md");
- Writer out = new OutputStreamWriter(os);
- TextUtils.extractText(wmlDocumentEl, out);
- out.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- } catch (GitAPIException e) {
- e.printStackTrace();
- }
- }
- }