/* * Copyright (C) 2009, Constantine Plotnikov * Copyright (C) 2008, Google Inc. * Copyright (C) 2010, Robin Rosenberg * Copyright (C) 2010, Sasa Zivkov * Copyright (C) 2010, Chris Aniszczyk * Copyright (C) 2016, RĂ¼diger Herrmann 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); } } }