aQute.bnd.plugin.git.GitPlugin Maven / Gradle / Ivy
The newest version!
package aQute.bnd.plugin.git;
import java.io.File;
import java.io.IOException;
import java.util.Formatter;
import aQute.bnd.annotation.plugin.BndPlugin;
import aQute.bnd.build.Project;
import aQute.bnd.osgi.Constants;
import aQute.bnd.service.lifecycle.LifeCyclePlugin;
import aQute.lib.io.IO;
/**
* Adds .gitignore files to projects when created.
*/
@BndPlugin(name = "git")
public class GitPlugin extends LifeCyclePlugin {
private static final String GITIGNORE = ".gitignore";
@Override
public void created(Project p) throws Exception {
Formatter f = new Formatter();
f.format("/%s/\n", p.getProperty(Constants.DEFAULT_PROP_TARGET_DIR, "generated"));
f.format("/%s/\n", p.getProperty(Constants.DEFAULT_PROP_BIN_DIR, "bin"));
f.format("/%s/\n", p.getProperty(Constants.DEFAULT_PROP_TESTBIN_DIR, "bin_test"));
IO.store(f.toString(), p.getFile(GITIGNORE));
f.close();
//
// Add some .gitignore to keep empty directories alive
//
for (File dir : p.getSourcePath()) {
touch(dir);
}
touch(p.getTestSrc());
}
private void touch(File dir) throws IOException {
IO.mkdirs(dir);
IO.store("", new File(dir, GITIGNORE));
}
@Override
public String toString() {
return "GitPlugin";
}
}