couchbase 3.0.0.alpha.5 → 3.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +12 -3
  3. data/README.md +4 -2
  4. data/Rakefile +1 -1
  5. data/couchbase.gemspec +17 -12
  6. data/ext/.idea/misc.xml +12 -0
  7. data/ext/CMakeLists.txt +10 -1
  8. data/ext/build_config.hxx.in +20 -0
  9. data/ext/build_version.hxx.in +1 -1
  10. data/ext/couchbase/bucket.hxx +90 -24
  11. data/ext/couchbase/cluster.hxx +125 -84
  12. data/ext/couchbase/cluster_options.hxx +53 -0
  13. data/ext/couchbase/configuration.hxx +220 -2
  14. data/ext/couchbase/couchbase.cxx +134 -127
  15. data/ext/couchbase/io/dns_client.hxx +3 -1
  16. data/ext/couchbase/io/http_command.hxx +91 -0
  17. data/ext/couchbase/io/http_session.hxx +58 -19
  18. data/ext/couchbase/io/http_session_manager.hxx +26 -31
  19. data/ext/couchbase/io/mcbp_command.hxx +180 -0
  20. data/ext/couchbase/io/mcbp_message.hxx +5 -0
  21. data/ext/couchbase/io/mcbp_session.hxx +213 -98
  22. data/ext/couchbase/io/streams.hxx +165 -0
  23. data/ext/couchbase/operations.hxx +1 -1
  24. data/ext/couchbase/operations/analytics_dataset_create.hxx +1 -1
  25. data/ext/couchbase/operations/bucket_create.hxx +4 -2
  26. data/ext/couchbase/operations/bucket_drop.hxx +4 -2
  27. data/ext/couchbase/operations/bucket_flush.hxx +4 -2
  28. data/ext/couchbase/operations/bucket_get.hxx +4 -2
  29. data/ext/couchbase/operations/bucket_get_all.hxx +4 -2
  30. data/ext/couchbase/operations/bucket_update.hxx +4 -2
  31. data/ext/couchbase/operations/cluster_developer_preview_enable.hxx +4 -2
  32. data/ext/couchbase/operations/collection_create.hxx +4 -2
  33. data/ext/couchbase/operations/collection_drop.hxx +4 -2
  34. data/ext/couchbase/operations/document_analytics.hxx +0 -4
  35. data/ext/couchbase/operations/document_decrement.hxx +6 -3
  36. data/ext/couchbase/operations/document_get.hxx +3 -0
  37. data/ext/couchbase/operations/document_get_and_lock.hxx +3 -0
  38. data/ext/couchbase/operations/document_get_and_touch.hxx +5 -2
  39. data/ext/couchbase/operations/document_get_projected.hxx +12 -9
  40. data/ext/couchbase/operations/document_increment.hxx +6 -3
  41. data/ext/couchbase/operations/document_insert.hxx +5 -2
  42. data/ext/couchbase/operations/document_lookup_in.hxx +3 -0
  43. data/ext/couchbase/operations/document_mutate_in.hxx +6 -3
  44. data/ext/couchbase/operations/document_remove.hxx +3 -0
  45. data/ext/couchbase/operations/document_replace.hxx +5 -2
  46. data/ext/couchbase/operations/document_search.hxx +6 -7
  47. data/ext/couchbase/operations/document_touch.hxx +5 -2
  48. data/ext/couchbase/operations/document_unlock.hxx +3 -0
  49. data/ext/couchbase/operations/document_upsert.hxx +5 -2
  50. data/ext/couchbase/operations/query_index_build_deferred.hxx +3 -3
  51. data/ext/couchbase/operations/query_index_create.hxx +3 -3
  52. data/ext/couchbase/operations/query_index_drop.hxx +3 -3
  53. data/ext/couchbase/operations/query_index_get_all.hxx +3 -3
  54. data/ext/couchbase/operations/scope_create.hxx +4 -2
  55. data/ext/couchbase/operations/scope_drop.hxx +4 -2
  56. data/ext/couchbase/operations/scope_get_all.hxx +4 -2
  57. data/ext/couchbase/operations/search_index_analyze_document.hxx +2 -2
  58. data/ext/couchbase/operations/search_index_control_ingest.hxx +2 -2
  59. data/ext/couchbase/operations/search_index_control_plan_freeze.hxx +2 -2
  60. data/ext/couchbase/operations/search_index_control_query.hxx +2 -2
  61. data/ext/couchbase/operations/search_index_drop.hxx +2 -2
  62. data/ext/couchbase/operations/search_index_get.hxx +2 -2
  63. data/ext/couchbase/operations/search_index_get_all.hxx +2 -2
  64. data/ext/couchbase/operations/search_index_get_documents_count.hxx +2 -2
  65. data/ext/couchbase/operations/search_index_upsert.hxx +2 -2
  66. data/ext/couchbase/origin.hxx +148 -0
  67. data/ext/couchbase/protocol/cmd_cluster_map_change_notification.hxx +1 -6
  68. data/ext/couchbase/protocol/cmd_decrement.hxx +5 -5
  69. data/ext/couchbase/protocol/cmd_get_and_touch.hxx +5 -5
  70. data/ext/couchbase/protocol/cmd_get_cluster_config.hxx +1 -6
  71. data/ext/couchbase/protocol/cmd_increment.hxx +5 -5
  72. data/ext/couchbase/protocol/cmd_info.hxx +0 -11
  73. data/ext/couchbase/protocol/cmd_insert.hxx +5 -5
  74. data/ext/couchbase/protocol/cmd_mutate_in.hxx +6 -6
  75. data/ext/couchbase/protocol/cmd_replace.hxx +5 -5
  76. data/ext/couchbase/protocol/cmd_touch.hxx +1 -1
  77. data/ext/couchbase/protocol/cmd_upsert.hxx +5 -5
  78. data/ext/couchbase/timeout_defaults.hxx +7 -0
  79. data/ext/couchbase/utils/connection_string.hxx +139 -0
  80. data/ext/extconf.rb +44 -11
  81. data/ext/test/main.cxx +93 -15
  82. data/ext/third_party/http_parser/Makefile +160 -0
  83. data/ext/third_party/json/Makefile +77 -0
  84. data/lib/couchbase/analytics_options.rb +18 -4
  85. data/lib/couchbase/binary_collection.rb +2 -2
  86. data/lib/couchbase/binary_collection_options.rb +2 -2
  87. data/lib/couchbase/bucket.rb +4 -4
  88. data/lib/couchbase/cluster.rb +60 -46
  89. data/lib/couchbase/collection.rb +13 -13
  90. data/lib/couchbase/collection_options.rb +15 -9
  91. data/{bin/console → lib/couchbase/datastructures.rb} +4 -7
  92. data/lib/couchbase/datastructures/couchbase_list.rb +171 -0
  93. data/lib/couchbase/datastructures/couchbase_map.rb +205 -0
  94. data/lib/couchbase/datastructures/couchbase_queue.rb +145 -0
  95. data/lib/couchbase/datastructures/couchbase_set.rb +138 -0
  96. data/lib/couchbase/errors.rb +66 -63
  97. data/lib/couchbase/management/user_manager.rb +1 -1
  98. data/lib/couchbase/mutation_state.rb +1 -0
  99. data/lib/couchbase/query_options.rb +25 -2
  100. data/lib/couchbase/scope.rb +0 -7
  101. data/lib/couchbase/search_options.rb +7 -0
  102. data/lib/couchbase/version.rb +1 -1
  103. data/lib/couchbase/view_options.rb +4 -3
  104. metadata +20 -82
  105. data/.github/workflows/tests-6.0.3.yml +0 -52
  106. data/.github/workflows/tests-dev-preview.yml +0 -55
  107. data/.github/workflows/tests.yml +0 -50
  108. data/.gitignore +0 -20
  109. data/.gitmodules +0 -21
  110. data/.idea/.gitignore +0 -5
  111. data/.idea/dictionaries/gem_terms.xml +0 -18
  112. data/.idea/inspectionProfiles/Project_Default.xml +0 -8
  113. data/.idea/vcs.xml +0 -13
  114. data/bin/check-cluster +0 -31
  115. data/bin/fetch-stats +0 -19
  116. data/bin/init-cluster +0 -82
  117. data/bin/jenkins/build-extension +0 -35
  118. data/bin/jenkins/install-dependencies +0 -47
  119. data/bin/jenkins/test-with-cbdyncluster +0 -58
  120. data/bin/setup +0 -24
  121. data/ext/couchbase/configuration_monitor.hxx +0 -93
  122. data/ext/couchbase/operations/command.hxx +0 -163
  123. data/rbi/couchbase.rbi +0 -79
@@ -1,52 +0,0 @@
1
- name: tests-6.0.3
2
-
3
- on:
4
- push:
5
- branches: [ master ]
6
- pull_request:
7
- branches: [ master ]
8
-
9
- jobs:
10
- test:
11
-
12
- runs-on: ubuntu-latest
13
-
14
- services:
15
- couchbase:
16
- image: couchbase:enterprise-6.0.3
17
- ports:
18
- - 8091-8095:8091-8095
19
- - 11210:11210
20
-
21
- steps:
22
- - name: Install build environment
23
- run: sudo apt-get install -y libssl-dev cmake gcc g++ curl
24
-
25
- - uses: actions/checkout@v2
26
- with:
27
- submodules: recursive
28
-
29
- - name: Set up ruby
30
- uses: ruby/setup-ruby@v1
31
- with:
32
- ruby-version: 2.6
33
-
34
- - name: Install dependencies
35
- run: bundle install
36
-
37
- - name: Initialize couchbase
38
- run: ./bin/init-cluster
39
-
40
- - name: Compile extension
41
- run: bundle exec rake compile
42
-
43
- - name: Display library version
44
- run: bundle exec ruby -I lib -r couchbase -e 'pp Couchbase::VERSION'
45
-
46
- - name: Check couchbase
47
- run: ./bin/check-cluster
48
-
49
- - name: Run tests
50
- run: bundle exec rake test
51
- env:
52
- TEST_SERVER_VERSION: 6.0.3
@@ -1,55 +0,0 @@
1
- name: tests-dev-preview
2
-
3
- on:
4
- push:
5
- branches: [ master ]
6
- pull_request:
7
- branches: [ master ]
8
-
9
- jobs:
10
- test:
11
-
12
- runs-on: ubuntu-latest
13
-
14
- services:
15
- couchbase:
16
- image: couchbase:enterprise-6.5.1
17
- ports:
18
- - 8091-8095:8091-8095
19
- - 11210:11210
20
-
21
- steps:
22
- - name: Install build environment
23
- run: sudo apt-get install -y libssl-dev cmake gcc g++ curl
24
-
25
- - uses: actions/checkout@v2
26
- with:
27
- submodules: recursive
28
-
29
- - name: Set up ruby
30
- uses: ruby/setup-ruby@v1
31
- with:
32
- ruby-version: 2.6
33
-
34
- - name: Install dependencies
35
- run: bundle install
36
-
37
- - name: Initialize couchbase
38
- run: ./bin/init-cluster
39
- env:
40
- DEVELOPER_PREVIEW: yes
41
-
42
- - name: Compile extension
43
- run: bundle exec rake compile
44
-
45
- - name: Display library version
46
- run: bundle exec ruby -I lib -r couchbase -e 'pp Couchbase::VERSION'
47
-
48
- - name: Check couchbase
49
- run: ./bin/check-cluster
50
-
51
- - name: Run tests
52
- run: bundle exec rake test
53
- env:
54
- DEVELOPER_PREVIEW: yes
55
- TEST_SERVER_VERSION: 6.5.1
@@ -1,50 +0,0 @@
1
- name: tests
2
-
3
- on:
4
- push:
5
- branches: [ master ]
6
- pull_request:
7
- branches: [ master ]
8
-
9
- jobs:
10
- test:
11
-
12
- runs-on: ubuntu-latest
13
-
14
- services:
15
- couchbase:
16
- image: couchbase
17
- ports:
18
- - 8091-8095:8091-8095
19
- - 11210:11210
20
-
21
- steps:
22
- - name: Install build environment
23
- run: sudo apt-get install -y libssl-dev cmake gcc g++ curl
24
-
25
- - uses: actions/checkout@v2
26
- with:
27
- submodules: recursive
28
-
29
- - name: Set up ruby
30
- uses: ruby/setup-ruby@v1
31
- with:
32
- ruby-version: 2.6
33
-
34
- - name: Install dependencies
35
- run: bundle install
36
-
37
- - name: Initialize couchbase
38
- run: ./bin/init-cluster
39
-
40
- - name: Compile extension
41
- run: bundle exec rake compile
42
-
43
- - name: Display library version
44
- run: bundle exec ruby -I lib -r couchbase -e 'pp Couchbase::VERSION'
45
-
46
- - name: Check couchbase
47
- run: ./bin/check-cluster
48
-
49
- - name: Run tests
50
- run: bundle exec rake test
data/.gitignore DELETED
@@ -1,20 +0,0 @@
1
- *.a
2
- *.gem
3
- *.o
4
- *.so
5
- *.dylib
6
- *.bundle
7
- .byebug_history
8
- /.rakeTasks
9
- /.yardoc
10
- /_yardoc/
11
- /cmake-build-*/
12
- /coverage/
13
- /doc/
14
- /pkg/
15
- /test/reports/
16
- /tmp/
17
- /vendor/bundle/
18
- Gemfile.lock
19
- Makefile
20
- mkmf.log
@@ -1,21 +0,0 @@
1
- [submodule "ext/third_party/gsl"]
2
- path = ext/third_party/gsl
3
- url = git://github.com/microsoft/gsl.git
4
- [submodule "ext/third_party/json"]
5
- path = ext/third_party/json
6
- url = git://github.com/taocpp/json.git
7
- [submodule "ext/third_party/spdlog"]
8
- path = ext/third_party/spdlog
9
- url = git://github.com/gabime/spdlog.git
10
- [submodule "ext/third_party/http_parser"]
11
- path = ext/third_party/http_parser
12
- url = git://github.com/nodejs/http-parser.git
13
- [submodule "ext/third_party/asio"]
14
- path = ext/third_party/asio
15
- url = git://github.com/chriskohlhoff/asio.git
16
- [submodule "ext/third_party/snappy"]
17
- path = ext/third_party/snappy
18
- url = git://github.com/google/snappy.git
19
- [submodule "test_data/sdk_test_cases"]
20
- path = test_data/sdk_test_cases
21
- url = git://github.com/couchbaselabs/sdk-testcases
@@ -1,5 +0,0 @@
1
- *.iml
2
- .rakeTasks
3
- misc.xml
4
- modules.xml
5
- workspace.xml
@@ -1,18 +0,0 @@
1
- <component name="ProjectDictionaryState">
2
- <dictionary name="gem_terms">
3
- <words>
4
- <w>adhoc</w>
5
- <w>datasets</w>
6
- <w>datastores</w>
7
- <w>dataverse</w>
8
- <w>keyspace</w>
9
- <w>libcouchbase</w>
10
- <w>opcode</w>
11
- <w>subdoc</w>
12
- <w>subdocument</w>
13
- <w>upsert</w>
14
- <w>upserting</w>
15
- <w>xattr</w>
16
- </words>
17
- </dictionary>
18
- </component>
@@ -1,8 +0,0 @@
1
- <component name="InspectionProjectProfileManager">
2
- <profile version="1.0">
3
- <option name="myName" value="Project Default" />
4
- <inspection_tool class="Rubocop" enabled="false" level="WARNING" enabled_by_default="false" />
5
- <inspection_tool class="RubyInstanceMethodNamingConvention" enabled="false" level="WARNING" enabled_by_default="false" />
6
- <inspection_tool class="RubyStringKeysInHashInspection" enabled="false" level="WARNING" enabled_by_default="false" />
7
- </profile>
8
- </component>
@@ -1,13 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
- <mapping directory="$PROJECT_DIR$/ext/third_party/asio" vcs="Git" />
6
- <mapping directory="$PROJECT_DIR$/ext/third_party/gsl" vcs="Git" />
7
- <mapping directory="$PROJECT_DIR$/ext/third_party/http_parser" vcs="Git" />
8
- <mapping directory="$PROJECT_DIR$/ext/third_party/json" vcs="Git" />
9
- <mapping directory="$PROJECT_DIR$/ext/third_party/snappy" vcs="Git" />
10
- <mapping directory="$PROJECT_DIR$/ext/third_party/spdlog" vcs="Git" />
11
- <mapping directory="$PROJECT_DIR$/test_data/sdk_test_cases" vcs="Git" />
12
- </component>
13
- </project>
@@ -1,31 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # Copyright 2020 Couchbase, Inc.
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- HOST=${HOST:-localhost}
18
- USERNAME=${USERNAME:-Administrator}
19
- PASSWORD=${PASSWOWRD:-password}
20
-
21
- CREDS="${USERNAME}:${PASSWORD}"
22
-
23
- sleep 1
24
-
25
- set -ex
26
-
27
- curl -sS -w "\n" -u${CREDS} http://${HOST}:8091/pools
28
- curl -sS -w "\n" -u${CREDS} http://${HOST}:8091/pools/default
29
- curl -sS -w "\n" -u${CREDS} http://${HOST}:8091/pools/default/buckets/default
30
- curl -sS -w "\n" -u${CREDS} http://${HOST}:8091/pools/default/b/default
31
-
@@ -1,19 +0,0 @@
1
- #!/usr/bin/ruby
2
-
3
- require "json"
4
- require "net/http"
5
- require "pp"
6
-
7
- Net::HTTP.start("rubygems.org", use_ssl: true) do |client|
8
- case resp = client.get("/api/v1/versions/couchbase.json")
9
- when Net::HTTPSuccess
10
- versions = JSON.parse(resp.body)
11
- stats = Hash.new(0)
12
- versions.each { |version| stats[version["number"]] += version["downloads_count"] }
13
- puts JSON.pretty_generate(
14
- versions: stats,
15
- total: stats.values.sum,
16
- total_3: stats.filter_map { |version, downloads| downloads if version =~ /^3.0.0/ }.sum,
17
- )
18
- end
19
- end
@@ -1,82 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # Copyright 2020 Couchbase, Inc.
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- CB_HOST=${CB_HOST:-localhost}
18
- CB_USERNAME=${CB_USERNAME:-Administrator}
19
- CB_PASSWORD=${CB_PASSWOWRD:-password}
20
- CB_QUOTA=${CB_QUOTA:-256}
21
- CB_DEVELOPER_PREVIEW=${CB_DEVELOPER_PREVIEW:-no}
22
- CB_BEER_SAMPLE=${CB_BEER_SAMPLE:-no}
23
- CB_TRAVEL_SAMPLE=${CB_TRAVEL_SAMPLE:-no}
24
-
25
- CB_CREDS="${CB_USERNAME}:${CB_PASSWORD}"
26
-
27
- sleep 1
28
-
29
- set -ex
30
-
31
- # Ping cluster
32
- curl -sS http://${CB_HOST}:8091/pools
33
-
34
- # Initialize Node
35
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/nodes/self/controller/settings \
36
- -d 'path=%2Fopt%2Fcouchbase%2Fvar%2Flib%2Fcouchbase%2Fdata' \
37
- -d 'index_path=%2Fopt%2Fcouchbase%2Fvar%2Flib%2Fcouchbase%2Fdata'
38
-
39
- # Setup Memory Quotas
40
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/pools/default \
41
- -d "memoryQuota=${CB_QUOTA}" \
42
- -d 'indexMemoryQuota=256'
43
-
44
- # Setup Services
45
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/node/controller/setupServices \
46
- -d 'services=kv%2Cn1ql%2Cindex%2Cfts%2Ccbas'
47
-
48
- # Setup Administrator username and password
49
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/settings/web \
50
- -d "password=${CB_PASSWORD}" \
51
- -d "username=${CB_USERNAME}" \
52
- -d "port=SAME"
53
-
54
- # Setup index settings
55
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/settings/indexes \
56
- -d "storageMode=plasma"
57
-
58
- # Setup Bucket
59
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/pools/default/buckets \
60
- -d 'flushEnabled=1' \
61
- -d 'threadsNumber=3' \
62
- -d 'replicaIndex=0' \
63
- -d 'replicaNumber=0' \
64
- -d 'evictionPolicy=valueOnly' \
65
- -d 'ramQuotaMB=100' \
66
- -d 'bucketType=membase' \
67
- -d 'name=default'
68
-
69
- if [ "x${CB_BEER_SAMPLE}" != "xno" ]; then
70
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/sampleBuckets/install \
71
- -d '["beer-sample"]'
72
- fi
73
-
74
- if [ "x${CB_TRAVEL_SAMPLE}" != "xno" ]; then
75
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/sampleBuckets/install \
76
- -d '["travel-sample"]'
77
- fi
78
-
79
- if [ "x${CB_DEVELOPER_PREVIEW}" != "xno" ]; then
80
- curl -sS -w "\n" -u ${CB_CREDS} http://${CB_HOST}:8091/settings/developerPreview \
81
- -d "enabled=true"
82
- fi
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # Copyright 2020 Couchbase, Inc.
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- PROJECT_ROOT="$( cd "$(dirname "$0"/../..)" >/dev/null 2>&1 ; pwd -P )"
18
-
19
- set -x
20
- set -e
21
-
22
- CB_RUBY_VERSION=${CB_RUBY_VERSION:-2.7.1}
23
-
24
- export PATH="$(realpath ~/.cmake-3.17.2/bin):$PATH"
25
-
26
- source /usr/local/share/chruby/chruby.sh
27
- chruby ruby-${CB_RUBY_VERSION}
28
-
29
- ruby --version
30
- bundle --version
31
- bundle config set --local path ${PROJECT_ROOT}/vendor/bundle
32
-
33
- bundle install
34
- export EXT_BUILD_DIR="${PROJECT_ROOT}/build-${RUBY_VERSION}-${BUILD_NUMBER}"
35
- bundle exec rake compile
@@ -1,47 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # Copyright 2020 Couchbase, Inc.
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- PROJECT_ROOT="$( cd "$(dirname "$0"/../..)" >/dev/null 2>&1 ; pwd -P )"
18
-
19
- set -x
20
- set -e
21
-
22
- CB_RUBY_VERSION=${CB_RUBY_VERSION:-2.7.1}
23
-
24
- if [ ! -x /usr/local/bin/ruby-install ]
25
- then
26
- wget -O ruby-install-0.7.0.tar.gz https://github.com/postmodern/ruby-install/archive/v0.7.0.tar.gz
27
- tar -xzvf ruby-install-0.7.0.tar.gz
28
- cd ruby-install-0.7.0/
29
- sudo make install
30
- fi
31
-
32
- if [ ! -e /usr/local/share/chruby/chruby.sh ]
33
- then
34
- wget -O chruby-0.3.9.tar.gz https://github.com/postmodern/chruby/archive/v0.3.9.tar.gz
35
- tar -xzvf chruby-0.3.9.tar.gz
36
- cd chruby-0.3.9/
37
- sudo make install
38
- fi
39
-
40
- ruby-install --jobs=6 --no-reinstall ruby ${CB_RUBY_VERSION}
41
-
42
- if [ ! -d ~/.cmake-3.17.2 ]
43
- then
44
- wget https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2-Linux-x86_64.tar.gz
45
- tar xvf cmake-3.17.2-Linux-x86_64.tar.gz
46
- mv cmake-3.17.2-Linux-x86_64 ~/.cmake-3.17.2
47
- fi