class Krakend < Formula desc "Ultra-High performance API Gateway built in Go" homepage "https://www.krakend.io/" url "https://github.com/devopsfaith/krakend-ce/archive/0.6.1.tar.gz" sha256 "f6dd5d8dbb5a3be488516ea5c0b3b234c80a330f7981891f64aaddd356302b2d" bottle do cellar :any_skip_relocation rebuild 1 sha256 "484bfc764e1d77e76854664c400634ce08e3898ae08f98d621c4423165b9c9f1" => :mojave sha256 "0f399b9eb0a9dcfe09ccebb99cd07205e3f4e3dc65766c7df98233e0d5edd7e8" => :high_sierra sha256 "7705b40cd7b4c654ff8f76ac5e7933d7b7b485166eeb17016c4eccfd04eac590" => :sierra end depends_on "dep" => :build depends_on "go" => :build def install ENV["GOPATH"] = buildpath (buildpath/"src/github.com/devopsfaith/krakend-ce").install buildpath.children cd "src/github.com/devopsfaith/krakend-ce" do system "make", "deps" system "make", "build" bin.install "krakend" prefix.install_metafiles end end test do (testpath/"krakend_unsupported_version.json").write <<~EOS { "version": 1, "extra_config": { "github_com/devopsfaith/krakend-gologging": { "level": "WARNING", "prefix": "[KRAKEND]", "syslog": false, "stdout": true } } } EOS assert_match "Unsupported version", shell_output("#{bin}/krakend check -c krakend_unsupported_version.json 2>&1") (testpath/"krakend_bad_file.json").write <<~EOS { "version": 2, "bad": file } EOS assert_match "ERROR", shell_output("#{bin}/krakend check -c krakend_bad_file.json 2>&1") (testpath/"krakend.json").write <<~EOS { "version": 2, "extra_config": { "github_com/devopsfaith/krakend-gologging": { "level": "WARNING", "prefix": "[KRAKEND]", "syslog": false, "stdout": true } }, "endpoints": [ { "endpoint": "/test", "method": "GET", "concurrent_calls": 1, "extra_config": { "github_com/devopsfaith/krakend-httpsecure": { "disable": true, "allowed_hosts": [], "ssl_proxy_headers": {} }, "github.com/devopsfaith/krakend-ratelimit/juju/router": { "maxRate": 0, "clientMaxRate": 0 } }, "backend": [ { "url_pattern": "/backend", "extra_config": { "github.com/devopsfaith/krakend-oauth2-clientcredentials": { "is_disabled": true, "endpoint_params": {} } }, "encoding": "json", "sd": "dns", "host": [ "host1" ], "disable_host_sanitize": true } ] } ] } EOS assert_match "OK", shell_output("#{bin}/krakend check -c krakend.json 2>&1") end end