GoCD borrows from Java standards / defacto standards and also from
Linux standards / defacto standards.  It may not be convenient but
learning something about shell notation and Java prior art (e.g. Ant)
can be useful.  The best books I can recommend to learn Linux / Unix
shell are Unix Power Tools and Unix in a Nutshell.

https://www.goodreads.com/book/show/172314.UNIX_Power_Tools

https://www.goodreads.com/book/show/331673.UNIX_in_a_Nutshell

Everything you ever wanted to know about the Linux shell (bash) may be
found in the man page (Linux Manual Page) a copy of which is here:

https://linux.die.net/man/1/bash

But it is not an easy read for a beginner.

You might also want to google for "bash tutorial" or "bash beginner
tutorial" to get the hang of things.  GoCD uses bash on Linux.

Once you understand how bash works some of these GoCD behaviors might
make more sense.

It also helps to understand Java prior art such as Apache Ant.  Ant
documentation on how properties (and environment variables) are used
is here:

https://ant.apache.org/manual/properties.html

https://ant.apache.org/manual/Tasks/property.html

I found this quote particularly instructive:
"When Ant started to support setting properties from environment
variables it ran on Java 1.2 where System.getEnv didn't work. So we
decided to start a command in a new process which prints the
environment variables, analyzes the output and creates the properties.
Once Java 5 became our baseline we could have switched to getEnv but
it returned different results on some platforms so we stuck with the
command approach to remain backwards compatible."

What this basically says is that at one time Java made environment
variables very hard - so people tended to avoid them in the Java world
- and used Properties instead (while the whole rest of the world, and
all other programming languages, used Environment Variables).  GoCD
uses both.  Sort of.  You will see there there are places you can set
Environment Variables in GoCD where you cannot set Properties.

You will quickly notice how Ant uses properties is similar to how Bash
uses environment variables.  CoCD tries to use both.

On Windows I think GoCD uses CMD.EXE - some documentation for that is here:

https://ss64.com/nt/cmd.html

Once you understand Environment Variables in Bash and CMD.EXE and
understand Properties in Ant, GoCD makes more sense.

General Note on GoCD Documentation:

The behavior of GoCD is controlled by the XML configuration.  The Web
UI documentation assumes that you already understand the XML, so it
doesn't always explain exactly what the Web UI does.

I have often found it helpful to read the "Configuration Reference"
for segments of the "Config XML" which are related to the GoCD Web UI
changes that I am trying to make.

https://docs.gocd.org/current/configuration/configuration_reference.html

Brian Fennell

-- 
You received this message because you are subscribed to the Google Groups 
"go-cd" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/go-cd/CAGJwi9gftjW9%3DDZnbQTsKoitEwSXxp8JHC1_RH1SakPaRT1_bw%40mail.gmail.com.

Reply via email to