fixman
home :: https://github.com/madgen/fixman
DESCRIPTION:
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.
FEATURES/PROBLEMS:
COMMAND LINE
test
fixman <test>
list/shortlist
fixman <list|shortlist>
Lists the repositories used in testing. Shortlist succint summary of the repositories with canonical name and commit hash used for testing.
add
fixman <add>
Starts interactive session to add new repository with the details.
delete
fixman <delete> <canonical_name>
Delete the repository identified by its canonical name from the list of places to be tested.
fetch
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.
update
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.
upgrade
fixman <upgrade> <group(s)>
CONFIGURATION FILE
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.
Fixture base (compulsory)
The base path for repositories listed in the ledger.
Example
:fixture_base: /path/to/base_dir
Task definitions (compulsory)
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:
Extra repository information (optional)
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
Symbol (mandatory)
Unique symbol for the extra bit of information.
Prompt (mandatory)
Prompt directed at the user when add
command is used.
Label (mandatory)
Label to be used when the repositories are listed for this information.
Choices (optional)
A list of strings corresponding to choices the value of the field can take.
Optional (optional)
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
Groups (optional)
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]
Fixture ledger (optional)
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
REQUIREMENTS:
Requires Ruby 1.9.3 or onwards.
INSTALL:
gem install fixman
LICENSE
Refer to LICENCE file but it is basically Apache Licence v2.0.
Copyright 2015 Mistral Contrastin