Provides functionality to merge and synchronize .gitignore files.
Description
This command merges the canonical .gitignore from dev-tools with the project's existing .gitignore, removing duplicates and sorting entries.
The command accepts two options: --source and --target to specify the paths to the canonical and project .gitignore files respectively.
'gitignore'
'Merges and synchronizes .gitignore files.'
"This command merges the canonical .gitignore from dev-tools with the project's existing .gitignore."
Interfaces
Defines the logger contract consumed by reusable command result helpers.
Constants
Properties
Methods
Creates a new GitIgnoreCommand instance.
Adds the standard JSON output options to the current command.
Configures the current command.
Executes the gitignore merge process.
Determines whether JSON output was requested.
Determines whether pretty JSON output was requested.
Logs a failed command result and returns the failure exit code.
Logs an informational command message at notice level.
Prompts whether .gitignore should be updated.
Logs a successful command result and returns the success exit code.
private
FileDiffer
$fileDiffer
private
FileLocatorInterface
$fileLocator
private
LoggerInterface
$logger
private
MergerInterface
$merger
private
ReaderInterface
$reader
private
WriterInterface
$writer
Creates a new GitIgnoreCommand instance.
public
__construct(MergerInterface
$merger, ReaderInterface
$reader, WriterInterface|null
$writer, FileLocatorInterface
$fileLocator, FileDiffer
$fileDiffer, LoggerInterface
$logger) : mixed
Parameters
Description
the merger component
Description
the reader component
Description
the writer component
$fileLocator
:
FileLocatorInterface
Description
the file locator
$logger
:
LoggerInterface
Description
the output-aware logger
Adds the standard JSON output options to the current command.
protected
addJsonOption() : static
Return values
Configures the current command.
protected
configure() : void
Description
This method MUST define the name, description, and help text for the command. It SHALL identify the tool as the mechanism for script synchronization.
Executes the gitignore merge process.
protected
execute(InputInterface
$input, OutputInterface
$output) : int
Parameters
$input
:
InputInterface
Description
the input interface
$output
:
OutputInterface
Description
the output interface
Return values
Description
the status code
Determines whether JSON output was requested.
protected
isJsonOutput(InputInterface
$input) : bool
Description
The pretty-json flag SHALL imply JSON output.
Parameters
$input
:
InputInterface
Return values
Determines whether pretty JSON output was requested.
protected
isPrettyJsonOutput(InputInterface
$input) : bool
Parameters
$input
:
InputInterface
Return values
Logs a failed command result and returns the failure exit code.
private
failure(
string
$message, InputInterface
$input[,
array<string, mixed>
$context = []][,
string|null
$file = null][,
int|null
$line = null]) : int
Parameters
$message
:
string
Description
the failure message
$input
:
InputInterface
Description
the originating command input
$context
:
array<string, mixed>
=
[]
Description
optional extra log context
$file
:
string|null
=
null
Description
the related file path when known
$line
:
int|null
=
null
Description
the related line when known
Return values
Logs an informational command message at notice level.
private
notice(
string
$message, InputInterface
$input[,
array<string, mixed>
$context = []]) : void
Parameters
$message
:
string
Description
the notice message
$input
:
InputInterface
Description
the originating command input
$context
:
array<string, mixed>
=
[]
Description
optional extra log context
Prompts whether .gitignore should be updated.
private
shouldWriteGitIgnore(
string
$targetPath) : bool
Parameters
$targetPath
:
string
Description
the target path that would be updated
Return values
Description
true when the update SHOULD proceed
Logs a successful command result and returns the success exit code.
private
success(
string
$message, InputInterface
$input[,
array<string, mixed>
$context = []][,
string
$logLevel = LogLevel::INFO]) : int
Parameters
$message
:
string
Description
the success message
$input
:
InputInterface
Description
the originating command input
$context
:
array<string, mixed>
=
[]
Description
optional extra log context
$logLevel
:
string
=
LogLevel::INFO
Description
the PSR-3 log level used for the successful result