summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2017-04-11 17:57:08 +0200
committerJacob Vosmaer <jacob@gitlab.com>2017-04-12 11:26:26 +0200
commit0fba550db58ca508cd92c88e1751e9362b60f100 (patch)
treefd7fc21ea27ab49c6e62d4339fd6f3a336443811 /bin
parent684599daddefd2b6149c5f99a620424f6f26166c (diff)
downloadgitlab-shell-0fba550db58ca508cd92c88e1751e9362b60f100.tar.gz
Add hello-world executable
Diffstat (limited to 'bin')
-rwxr-xr-xbin/compile36
1 files changed, 36 insertions, 0 deletions
diff --git a/bin/compile b/bin/compile
new file mode 100755
index 0000000..e9936ee
--- /dev/null
+++ b/bin/compile
@@ -0,0 +1,36 @@
+#!/usr/bin/env ruby
+
+require 'fileutils'
+
+# This will set the ROOT_PATH variable
+require_relative '../lib/gitlab_init'
+
+GO_DIR = 'go'
+GOPATH = File.join(ROOT_PATH, 'go_build')
+GO_PACKAGE = File.join('gitlab.com/gitlab-org/gitlab-shell', GO_DIR)
+
+def main
+ FileUtils.rm_rf(GOPATH)
+ build_source_dir = File.join(GOPATH, 'src', GO_PACKAGE)
+ FileUtils.mkdir_p(build_source_dir)
+ FileUtils.cp_r(File.join(ROOT_PATH, GO_DIR, '.'), build_source_dir)
+ env = {
+ 'GOPATH' => GOPATH,
+ 'GO15VENDOREXPERIMENT' => '1',
+ }
+ run!(env, %W[go install #{GO_PACKAGE}/cmd/...])
+ executables = Dir[File.join(GOPATH, 'bin', '*')]
+ FileUtils.chmod(0755, executables)
+ FileUtils.cp(executables, File.join(ROOT_PATH, 'bin'))
+end
+
+def run!(env, cmd)
+ raise "env must be a hash" unless env.is_a?(Hash)
+ raise "cmd must be an array" unless cmd.is_a?(Array)
+
+ if !system(env, *cmd)
+ abort "command failed: #{env.inspect} #{cmd.join(' ')}"
+ end
+end
+
+main