tomo 1.14.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/lib/tomo/cli/rules.rb +3 -3
- data/lib/tomo/commands/init.rb +1 -1
- data/lib/tomo/console/menu.rb +1 -1
- data/lib/tomo/plugin/rbenv/tasks.rb +3 -5
- data/lib/tomo/runtime/execution_plan.rb +1 -1
- data/lib/tomo/templates/config.rb.erb +1 -0
- data/lib/tomo/testing/docker_image.rb +1 -11
- data/lib/tomo/testing/local.rb +1 -1
- data/lib/tomo/testing/ubuntu_setup.sh +21 -1
- data/lib/tomo/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70027859367ad910607a0d7329b50405c0a243e52ff650dc82d5c34ad5162990
|
4
|
+
data.tar.gz: 5dd2fe0c7b879d7cf6ef04301437e22fdd34412830fd4ecbd0958241643066a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b336aeb0e8ccffdc3dbe5e4842a297a8e18527f37ea7c523ceb27f76191433448c85b0d71a937c135712cf71eff996822535a3f6257344315cb5805eb2c93a92
|
7
|
+
data.tar.gz: 2fdac86683f454707c033a5a93cf0f1cb1bc7e4cfdd2d3566088de39f54e9757cc6ab29bbf73f309832f3d733f440aefaf500139758039b2543500d485911ab1
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Tomo
|
2
2
|
|
3
3
|
[](https://rubygems.org/gems/tomo)
|
4
|
-
[](https://mattbrictson.semaphoreci.com/projects/tomo)
|
5
5
|
[](https://codeclimate.com/github/mattbrictson/tomo)
|
6
6
|
|
7
7
|
Tomo is a friendly command-line tool for deploying Rails apps.
|
data/lib/tomo/cli/rules.rb
CHANGED
@@ -12,9 +12,9 @@ module Tomo
|
|
12
12
|
}.freeze
|
13
13
|
|
14
14
|
OPTION_PATTERNS = {
|
15
|
-
/\A--\[no-\]([
|
16
|
-
/\A(-[a-z]), (--[
|
17
|
-
/\A(-[a-z]), (--[
|
15
|
+
/\A--\[no-\]([-a-z]+)\z/ => :on_off_switch_rule,
|
16
|
+
/\A(-[a-z]), (--[-a-z]+)\z/ => :basic_switch_rule,
|
17
|
+
/\A(-[a-z]), (--[-a-z]+) [A-Z=_-]+\z/ => :value_switch_rule
|
18
18
|
}.freeze
|
19
19
|
|
20
20
|
private_constant :ARG_PATTERNS, :OPTION_PATTERNS
|
data/lib/tomo/commands/init.rb
CHANGED
@@ -29,7 +29,7 @@ module Tomo
|
|
29
29
|
assert_no_tomo_project!
|
30
30
|
|
31
31
|
app = args.first || current_dir_name || "default"
|
32
|
-
app = app.gsub(/([^\w
|
32
|
+
app = app.gsub(/([^\w-]|_)+/, "_").downcase
|
33
33
|
FileUtils.mkdir_p(".tomo/plugins")
|
34
34
|
|
35
35
|
# TODO: use a template for this file
|
data/lib/tomo/console/menu.rb
CHANGED
@@ -34,17 +34,15 @@ module Tomo::Plugin::Rbenv
|
|
34
34
|
ruby_version = version_setting || extract_ruby_ver_from_version_file
|
35
35
|
|
36
36
|
unless ruby_installed?(ruby_version)
|
37
|
-
logger.info(
|
38
|
-
|
39
|
-
)
|
40
|
-
remote.run "CFLAGS=-O3 rbenv install #{ruby_version.shellescape}"
|
37
|
+
logger.info("Installing ruby #{ruby_version} -- this may take several minutes")
|
38
|
+
remote.run "CFLAGS=-O3 rbenv install #{ruby_version.shellescape} --verbose"
|
41
39
|
end
|
42
40
|
remote.run "rbenv global #{ruby_version.shellescape}"
|
43
41
|
end
|
44
42
|
|
45
43
|
def ruby_installed?(version)
|
46
44
|
versions = remote.capture("rbenv versions", raise_on_error: false)
|
47
|
-
if versions.
|
45
|
+
if versions.match?(/^\*?\s*#{Regexp.quote(version)}\s/)
|
48
46
|
logger.info("Ruby #{version} is already installed.")
|
49
47
|
return true
|
50
48
|
end
|
@@ -44,8 +44,6 @@ module Tomo
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def puma_port
|
47
|
-
return 3000 if ENV["_TOMO_CONTAINER"]
|
48
|
-
|
49
47
|
Local.capture("docker port #{container_id} 3000")[/:(\d+)/, 1].to_i
|
50
48
|
end
|
51
49
|
|
@@ -88,13 +86,7 @@ module Tomo
|
|
88
86
|
end
|
89
87
|
|
90
88
|
def start_container
|
91
|
-
|
92
|
-
args = "--detach --init #{image_id}"
|
93
|
-
if host_container
|
94
|
-
args.prepend("--network=container:#{host_container} ")
|
95
|
-
else
|
96
|
-
args.prepend("--publish-all ")
|
97
|
-
end
|
89
|
+
args = "--publish-all --detach --init #{image_id}"
|
98
90
|
Local.capture("docker run #{args}")[/\S+/].tap do
|
99
91
|
# Allow some time for the container to finish booting
|
100
92
|
sleep 0.1
|
@@ -102,8 +94,6 @@ module Tomo
|
|
102
94
|
end
|
103
95
|
|
104
96
|
def find_ssh_port
|
105
|
-
return 22 if ENV["_TOMO_CONTAINER"]
|
106
|
-
|
107
97
|
Local.capture("docker port #{container_id} 22")[/:(\d+)/, 1].to_i
|
108
98
|
end
|
109
99
|
|
data/lib/tomo/testing/local.rb
CHANGED
@@ -17,7 +17,27 @@ touch /var/lib/systemd/linger/deployer
|
|
17
17
|
|
18
18
|
# Packages needed for ruby, etc.
|
19
19
|
apt-get -y update
|
20
|
-
apt-get -y install
|
20
|
+
apt-get -y install autoconf \
|
21
|
+
bison \
|
22
|
+
build-essential \
|
23
|
+
curl \
|
24
|
+
git-core \
|
25
|
+
libdb-dev \
|
26
|
+
libffi-dev \
|
27
|
+
libgdbm-dev \
|
28
|
+
libgdbm6 \
|
29
|
+
libgmp-dev \
|
30
|
+
libncurses5-dev \
|
31
|
+
libreadline6-dev \
|
32
|
+
libsqlite3-dev \
|
33
|
+
libssl-dev \
|
34
|
+
libyaml-dev \
|
35
|
+
locales \
|
36
|
+
patch \
|
37
|
+
pkg-config \
|
38
|
+
rustc \
|
39
|
+
uuid-dev \
|
40
|
+
zlib1g-dev
|
21
41
|
|
22
42
|
apt-get -y install tzdata \
|
23
43
|
-o DPkg::options::="--force-confdef" \
|
data/lib/tomo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tomo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.15.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Brictson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Tomo is a feature-rich deployment tool that contains everything you need
|
14
14
|
to deploy a basic Rails app out of the box. It has an opinionated, production-tested
|
@@ -189,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
189
|
- !ruby/object:Gem::Version
|
190
190
|
version: '0'
|
191
191
|
requirements: []
|
192
|
-
rubygems_version: 3.3
|
192
|
+
rubygems_version: 3.4.3
|
193
193
|
signing_key:
|
194
194
|
specification_version: 4
|
195
195
|
summary: A friendly CLI for deploying Rails apps ✨
|