Hooks.java
- /*
- * Copyright (C) 2015 Obeo. 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.hooks;
- import java.io.PrintStream;
- import java.text.MessageFormat;
- import org.eclipse.jgit.internal.JGitText;
- import org.eclipse.jgit.lib.Repository;
- import org.eclipse.jgit.util.LfsFactory;
- /**
- * Factory class for instantiating supported hooks.
- *
- * @since 4.0
- */
- public class Hooks {
- /**
- * Create pre-commit hook for the given repository with the default error
- * stream
- *
- * @param repo
- * a {@link org.eclipse.jgit.lib.Repository} object.
- * @param outputStream
- * The output stream, or {@code null} to use {@code System.out}
- * @return The pre-commit hook for the given repository.
- */
- public static PreCommitHook preCommit(Repository repo,
- PrintStream outputStream) {
- return new PreCommitHook(repo, outputStream);
- }
- /**
- * Create pre-commit hook for the given repository
- *
- * @param repo
- * a {@link org.eclipse.jgit.lib.Repository} object.
- * @param outputStream
- * The output stream, or {@code null} to use {@code System.out}
- * @param errorStream
- * The error stream, or {@code null} to use {@code System.err}
- * @return The pre-commit hook for the given repository.
- * @since 5.6
- */
- public static PreCommitHook preCommit(Repository repo,
- PrintStream outputStream, PrintStream errorStream) {
- return new PreCommitHook(repo, outputStream, errorStream);
- }
- /**
- * Create post-commit hook for the given repository with the default error
- * stream
- *
- * @param repo
- * a {@link org.eclipse.jgit.lib.Repository} object.
- * @param outputStream
- * The output stream, or {@code null} to use {@code System.out}
- * @return The post-commit hook for the given repository.
- * @since 4.5
- */
- public static PostCommitHook postCommit(Repository repo,
- PrintStream outputStream) {
- return new PostCommitHook(repo, outputStream);
- }
- /**
- * Create post-commit hook for the given repository
- *
- * @param repo
- * a {@link org.eclipse.jgit.lib.Repository} object.
- * @param outputStream
- * The output stream, or {@code null} to use {@code System.out}
- * @param errorStream
- * The error stream, or {@code null} to use {@code System.err}
- * @return The pre-commit hook for the given repository.
- * @since 5.6
- */
- public static PostCommitHook postCommit(Repository repo,
- PrintStream outputStream, PrintStream errorStream) {
- return new PostCommitHook(repo, outputStream, errorStream);
- }
- /**
- * Create commit-msg hook for the given repository with the default error
- * stream
- *
- * @param repo
- * a {@link org.eclipse.jgit.lib.Repository} object.
- * @param outputStream
- * The output stream, or {@code null} to use {@code System.out}
- * @return The commit-msg hook for the given repository.
- */
- public static CommitMsgHook commitMsg(Repository repo,
- PrintStream outputStream) {
- return new CommitMsgHook(repo, outputStream);
- }
- /**
- * Create commit-msg hook for the given repository
- *
- * @param repo
- * a {@link org.eclipse.jgit.lib.Repository} object.
- * @param outputStream
- * The output stream, or {@code null} to use {@code System.out}
- * @param errorStream
- * The error stream, or {@code null} to use {@code System.err}
- * @return The pre-commit hook for the given repository.
- * @since 5.6
- */
- public static CommitMsgHook commitMsg(Repository repo,
- PrintStream outputStream, PrintStream errorStream) {
- return new CommitMsgHook(repo, outputStream, errorStream);
- }
- /**
- * Create pre-push hook for the given repository with the default error
- * stream
- *
- * @param repo
- * a {@link org.eclipse.jgit.lib.Repository} object.
- * @param outputStream
- * The output stream, or {@code null} to use {@code System.out}
- * @return The pre-push hook for the given repository.
- * @since 4.2
- */
- public static PrePushHook prePush(Repository repo, PrintStream outputStream) {
- if (LfsFactory.getInstance().isAvailable()) {
- PrePushHook hook = LfsFactory.getInstance().getPrePushHook(repo,
- outputStream);
- if (hook != null) {
- if (hook.isNativeHookPresent()) {
- PrintStream ps = outputStream;
- if (ps == null) {
- ps = System.out;
- }
- ps.println(MessageFormat
- .format(JGitText.get().lfsHookConflict, repo));
- }
- return hook;
- }
- }
- return new PrePushHook(repo, outputStream);
- }
- /**
- * Create pre-push hook for the given repository
- *
- * @param repo
- * a {@link org.eclipse.jgit.lib.Repository} object.
- * @param outputStream
- * The output stream, or {@code null} to use {@code System.out}
- * @param errorStream
- * The error stream, or {@code null} to use {@code System.err}
- * @return The pre-push hook for the given repository.
- * @since 5.6
- */
- public static PrePushHook prePush(Repository repo, PrintStream outputStream,
- PrintStream errorStream) {
- if (LfsFactory.getInstance().isAvailable()) {
- PrePushHook hook = LfsFactory.getInstance().getPrePushHook(repo,
- outputStream, errorStream);
- if (hook != null) {
- if (hook.isNativeHookPresent()) {
- PrintStream ps = outputStream;
- if (ps == null) {
- ps = System.out;
- }
- ps.println(MessageFormat
- .format(JGitText.get().lfsHookConflict, repo));
- }
- return hook;
- }
- }
- return new PrePushHook(repo, outputStream, errorStream);
- }
- }