home :: https://github.com/madgen/fixman
THIS PROJECT IS NOT YET READY FOR USAGE!
A tool to test source code analysis command line tools against source code remotely available in git repositories such as GitHub.
fixman <test>
fixman <list|shortlist>
Lists the repositories used in testing. Shortlist succint summary of the repositories with canonical name and commit hash used for testing.
fixman <add>
Starts interactive session to add new repository with the details.
fixman <delete> <canonical_name>
Delete the repository identified by its canonical name from the list of places to be tested.
fixman <fetch> [group...]
Download all the repositories belonging to list of groups. The groups would be specified in the configuration file. If group is left out all repositories are fetched.
The version of the repository fetch is set to HEAD by default. If a different commit is desired this can be specified while adding the repository or by altering the YAML file containing the repositories.
If the remote repository cannot be reached or there are not sufficient priveleges, fetch process skips to the next repository but produces a warning.
fixman <update> <canonical_name> [commit_SHA]
Updates the commit of the repository. This can be a future commit or an older
one. It only updates the repository listing as such upgrade
needs to be run to
update the repo in the file system.
fixman <upgrade> <group(s)>
Configuration file is a YAML file ordinarily located at .fixman_conf.yaml
unless it has been overridden by the -c
command line option. It contains
task definitions, base path for the fixtures, and allows overriding various
defaults.
The base path for repositories listed in the ledger.
Example
:fixture_base: /path/to/base_dir
An array of tasks to be run on the repositories specified in the fixtures ledger.
Example:
:tasks:
- :target_condition: :ruby: 2.even?
:command:
:extra_placeholders:
:cleanups:
:target_placeholder:
If set, it causes add
command to direct more queries to the user than what
is necessary for fixman to function. This information can be things like notes,
licence, urls, and anything else. It further allows these fields to be optional,
chosen from set values, or mandatory.
Each extra repository information has the following subfields
Unique symbol for the extra bit of information.
Prompt directed at the user when add
command is used.
Label to be used when the repositories are listed for this information.
A list of strings corresponding to choices the value of the field can take.
If set to true, then the empty entry is acceptable. If omitted or set to false the prompt is repeated until a valid input is received.
Example:
:extra_repo_info:
- :symbol: licence
:prompt: Please enter licence
:label: Licence
:choices: [MIT, Apache, GPL]
- :symbol: notes
:prompt: Any notes?
:label: Notes
:optional: true
Not every repository in the ledger needs to be fetched and tested. This option allows user to specify groups which can be separately fetched and tested. Refer to the command line documentation for example usage.
Example:
:groups: [:public, :private]
The path to the YAML file that acts as a ledger for the repositories. Defaults
to .fixman_ledger.yaml
.
Example:
:fixture_ledger: /path/to/my_ledger.yaml
Requires Ruby 1.9.3 or onwards.
gem install fixman
Refer to LICENCE file but it is basically Apache Licence v2.0.
Copyright 2015 Mistral Contrastin