package com.atlassian.bitbucket.mesh.config;

import javax.annotation.Nonnull;

public interface ProcessConfig {

    /**
     * Retrieves the maximum size in number of characters that command lines can be.
     *
     * @return the maximum size for command lines
     */
    int getCommandLineSize();

    /**
     * Retrieves the maximum size in number of characters that environment variables can be.
     *
     * @return the maximum size for environment variables
     */
    int getEnvironmentVariableSize();

    /**
     * Retrieves the configured SSH binary to use for git commands accessing external repositories over SSH. The
     * returned value is exactly as configured in the application properties - e.g. if a fully qualified path to
     * the binary is configured, this is returned; if an unqualified path is specified, this is returned.
     *
     * @return the real SSH binary to use for outgoing SSH git operations
     */
    @Nonnull
    String getSshBinary();
}
