diff --git a/exe/metanorma b/exe/metanorma index a25361ad..33468daa 100755 --- a/exe/metanorma +++ b/exe/metanorma @@ -17,4 +17,18 @@ end # start up the CLI require "metanorma/cli" -Metanorma::Cli.start(ARGV) +metanorma_cli = proc { Metanorma::Cli.start(ARGV) } +if ENV["SOCKS_PROXY"] + require "socksify" + require "uri" + begin + proxy = URI.parse(ENV["SOCKS_PROXY"]) + Socksify::proxy(proxy.host, proxy.port, &metanorma_cli) + rescue URI::InvalidURIError + warn "Value of ENV.SOCKS_PROXY=#{ENV['SOCKS_PROXY']} is invalid! Droping it" + ENV.delete("SOCKS_PROXY") + metanorma_cli.call + end +else + metanorma_cli.call +end diff --git a/metanorma-cli.gemspec b/metanorma-cli.gemspec index 9acccc82..5e46eb0b 100644 --- a/metanorma-cli.gemspec +++ b/metanorma-cli.gemspec @@ -58,4 +58,6 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "metanorma-ogc", "~> 1.3.0" spec.add_runtime_dependency "metanorma-un", "~> 0.6.0" spec.add_runtime_dependency "relaton-cli", ">= 0.8.2" + + spec.add_runtime_dependency "socksify" end