Mercurial > hg > mercurial
view mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RepoFactory.java @ 408:b34ffc622efc Faradi-7.0.x
TW-20295 store log.template in the temp dir
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Mon, 05 Mar 2012 10:42:02 +0400 |
parents | 45f25ca68312 |
children | 743dc1646555 |
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.AuthSettings; import jetbrains.buildServer.util.FileUtil; import jetbrains.buildServer.vcs.VcsException; import org.jetbrains.annotations.NotNull; import java.io.File; import java.io.IOException; import static com.intellij.openapi.util.io.FileUtil.createTempFile; import static com.intellij.openapi.util.io.FileUtil.delete; /** * @author dmitry.neverov */ public final class RepoFactory { private File myLogTemplate; public RepoFactory() throws IOException { myLogTemplate = createLogTemplate(); } @NotNull public ServerHgRepo create(@NotNull File workingDir, @NotNull String hgPath, @NotNull AuthSettings authSettings) throws VcsException { return new ServerHgRepo(workingDir, hgPath, authSettings).withLogTemplate(getTemplate()); } public void dispose() { delete(myLogTemplate); } private File getTemplate() throws VcsException { if (myLogTemplate.isFile() && myLogTemplate.exists()) return myLogTemplate; try { myLogTemplate = createLogTemplate(); return myLogTemplate; } catch (IOException e) { throw new VcsException("Cannot create mercurial log template", e); } } private File createLogTemplate() throws IOException { File template = createTempFile("teamcity", "hg.log.template"); FileUtil.copyResource(RepoFactory.class, "/buildServerResources/log.template", template); return template; } }