git-gui: add build tab
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
ChangeLog:
2014/05/13:
- Close open pipes in case we could not record the envirionment
(e.g., if modules conflict).
- Do not run empty commands.
2014/05/09:
- Fix creating config submenus.
2014/05/07:
- Fix gui.build.nodefault. Logic was inverted.
2014/05/05:
- Change and extend buildconfig.
The config variables are now called 'gui.buildconfig.<configname>.env'.
This gives more freedom in the name of the config variable, as it is now
possible to use "" in the config file:
[gui.buildconfig "Take this"]
env = PATH+:=/home/bin
An additional .title is also possible.
The new gui.build.configCommand specifies an command which should be run
to get dynamic build configs. The output must be the same as for
'git config --null', e.g., of the format '<name>\n<value>\0'.
The config menu is now cascaded on '/'.
2014/05/04:
- Close fd from ls-tree. (Fixes <defunct> git-ls-tree after going back to
previous command).
- Use GNU grep to only get the hit lines in the GNU nl fallback.
- Use env command to modify the env in the forked program.
- Add +=, %=, and -= env modifier to alter an environment variable.
"+" is append, "%" is prepend, "-" is remove. Default separator is "".
To specify a custom separator use "+:=", e.g., any character between
the operator and the equal sign will be taken as the separator. The
The += and %= operations also remove any occurrence of the value from
the variable before appending or prepending it. I.e., they
move the entry to the front or back, if it was already in the variable.
- Add feature to select current configs.
Possible configs are taken from the "gui.buildconfigs.*" variables.
Example:
[gui.buildconfigs]
usefoo = PATH+:=/home/example/foo
This defines the config 'usefoo' which alters the PATH environmental
variable. Multiple variables of the same name are permitted and applied
in order. A build have a default of selected configs, given by the
gui.build.config or the build specific gui.build.*.config variable.
To change the current list of configurations open a context menu
in the indicator widget (the colored one between the file lists and
the main output widget).