@@ -0,0 +1,2462 @@
+package net.evanstoner.cli4j.examples.golang;%0A%0Aimport net.evanstoner.cli4j.Command;%0Aimport net.evanstoner.cli4j.Result;%0A%0Aimport java.io.IOException;%0Aimport java.security.InvalidParameterException;%0A%0Apublic class GoCli extends Command %7B%0A    public GoCli() %7B%0A        super(%22go%22);%0A    %7D%0A%0A    public Result version() throws IOException, InterruptedException %7B%0A        positional(0, %22version%22);%0A        return this.exec();%0A    %7D%0A%0A    public Result env() throws IOException, InterruptedException %7B%0A        positional(0, %22env%22);%0A        return this.exec();%0A    %7D%0A%0A    public GoBuild build() %7B%0A        return new GoBuild(this);%0A    %7D%0A%0A    public GoRun run(String programFile) %7B%0A        positional(0, %22run%22);%0A        return new GoRun(programFile, this);%0A    %7D%0A%0A    public class GoBuild extends Command %7B%0A        public GoBuild(GoCli go) %7B%0A            super(%22build%22, go);%0A        %7D%0A%0A        public GoBuild dir(String dir) %7B%0A            positional(0, dir);%0A            return this;%0A        %7D%0A    %7D%0A%0A    public class GoRun extends Command %7B%0A        int pos = 1;%0A%0A        public GoRun(String program, GoCli go) %7B%0A            super(program, go);%0A        %7D%0A%0A        public GoRun args(String... args) %7B%0A            for (String arg : args) %7B%0A                positional(pos++, arg);%0A            %7D%0A            return this;%0A        %7D%0A%0A        /**%0A         * Key Value pair program args%0A         * args must be even%0A         *%0A         * @param args%0A         * @return%0A         */%0A        public GoRun flags(String... args) %7B%0A            if (args.length %25 2 != 0) %7B%0A                throw new InvalidParameterException(%22given args are not even%22);%0A            %7D%0A%0A            for (int i = 0; i %3C args.length; i += 2) %7B%0A                shortOption(args%5Bi%5D, args%5Bi + 1%5D);%0A            %7D%0A            return this;%0A        %7D%0A    %7D%0A%0A    public static void main(String%5B%5D args) throws IOException, InterruptedException %7B%0A        GoCli go = new GoCli();%0A%0A        System.out.println(%22Go version: %22 + go.version().getOutput());%0A        System.out.println(%22Go env: %22 + go.env().getOutput());%0A%0A        Result res = go.run(%22main.go%22)%0A                .flags(%22delay%22, %22200ms%22,%0A                        %22routines%22, %225%22)%0A                .args(%22https://www.google.com%22, %22https://www.youtube.com%22)%0A                .exec();%0A%0A        if (!res.isSuccessful()) %7B%0A            System.err.println(%22ERROR: %22 + res.getErrorOutput());%0A        %7D else %7B%0A            System.out.println(res.getOutput());%0A        %7D%0A    %7D%0A%7D%0A

Add golang cli example