| /* |
| * Copyright (C) 2009, Constantine Plotnikov <constantine.plotnikov@gmail.com> |
| * Copyright (C) 2008, Google Inc. |
| * Copyright (C) 2010, Robin Rosenberg <robin.rosenberg@dewire.com> |
| * Copyright (C) 2010, Sasa Zivkov <sasa.zivkov@sap.com> |
| * Copyright (C) 2010, Chris Aniszczyk <caniszczyk@gmail.com> |
| * Copyright (C) 2016, RĂ¼diger Herrmann <ruediger.herrmann@gmx.de> and others |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Distribution License v. 1.0 which is available at |
| * https://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| package org.eclipse.jgit.pgm; |
| |
| import java.io.File; |
| import java.io.IOException; |
| import java.text.MessageFormat; |
| |
| import org.eclipse.jgit.api.Git; |
| import org.eclipse.jgit.api.InitCommand; |
| import org.eclipse.jgit.api.errors.GitAPIException; |
| import org.eclipse.jgit.lib.Repository; |
| import org.eclipse.jgit.pgm.internal.CLIText; |
| import org.eclipse.jgit.util.StringUtils; |
| import org.kohsuke.args4j.Argument; |
| import org.kohsuke.args4j.Option; |
| |
| @Command(common = true, usage = "usage_CreateAnEmptyGitRepository") |
| class Init extends TextBuiltin { |
| @Option(name = "--bare", usage = "usage_CreateABareRepository") |
| private boolean bare; |
| |
| @Option(name = "--initial-branch", aliases = { "-b" }, |
| metaVar = "metaVar_branchName", usage = "usage_initialBranch") |
| private String branch; |
| |
| @Argument(index = 0, metaVar = "metaVar_directory") |
| private String directory; |
| |
| @Override |
| protected final boolean requiresRepository() { |
| return false; |
| } |
| |
| @Override |
| protected void run() { |
| InitCommand command = Git.init(); |
| command.setBare(bare); |
| if (gitdir != null) { |
| command.setDirectory(new File(gitdir)); |
| } |
| if (directory != null) { |
| command.setDirectory(new File(directory)); |
| } |
| Repository repository; |
| try { |
| if (!StringUtils.isEmptyOrNull(branch)) { |
| command.setInitialBranch(branch); |
| } |
| repository = command.call().getRepository(); |
| outw.println(MessageFormat.format( |
| CLIText.get().initializedEmptyGitRepositoryIn, |
| repository.getDirectory().getAbsolutePath())); |
| } catch (GitAPIException | IOException e) { |
| throw die(e.getMessage(), e); |
| } |
| } |
| } |