View Javadoc
1   /*
2    * Copyright (C) 2011, Ketan Padegaonkar <KetanPadegaonkar@gmail.com> and others
3    *
4    * This program and the accompanying materials are made available under the
5    * terms of the Eclipse Distribution License v. 1.0 which is available at
6    * https://www.eclipse.org/org/documents/edl-v10.php.
7    *
8    * SPDX-License-Identifier: BSD-3-Clause
9    */
10  package org.eclipse.jgit.ant.tasks;
11  
12  import java.io.File;
13  
14  import org.apache.tools.ant.BuildException;
15  import org.apache.tools.ant.Task;
16  import org.eclipse.jgit.api.Git;
17  import org.eclipse.jgit.api.InitCommand;
18  
19  /**
20   * Create an empty git repository.
21   *
22   * @see <a href="http://www.kernel.org/pub/software/scm/git/docs/git-init.html"
23   *      >git-init(1)</a>
24   */
25  public class GitInitTask extends Task {
26  	private File destination;
27  	private boolean bare;
28  
29  	/**
30  	 * Set the destination git repository.
31  	 *
32  	 * @param dest
33  	 *            the destination directory that should be initialized with the
34  	 *            git repository.
35  	 */
36  	public void setDest(File dest) {
37  		this.destination = dest;
38  	}
39  
40  	/**
41  	 * Configure if the repository should be <code>bare</code>
42  	 *
43  	 * @param bare
44  	 *            whether the repository should be initialized to a bare
45  	 *            repository or not.
46  	 */
47  	public void setBare(boolean bare) {
48  		this.bare = bare;
49  	}
50  
51  	/** {@inheritDoc} */
52  	@Override
53  	public void execute() throws BuildException {
54  		if (bare) {
55  			log("Initializing bare repository at " + destination);
56  		} else {
57  			log("Initializing repository at " + destination);
58  		}
59  		try {
60  			InitCommand init = Git.init();
61  			init.setBare(bare).setDirectory(destination);
62  			init.call();
63  		} catch (Exception e) {
64  			throw new BuildException("Could not initialize repository", e);
65  		}
66  	}
67  }