takelage 0.23.1 → 0.25.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d346e40e1123b0d3ab5c6934f2ff4f269348ed6ef96536c7c32bb6a41d41ae0
4
- data.tar.gz: 52c40ad168244e782e68c3f177e6fedb2d570c4e665a74af0cbbe52eb4a28f8e
3
+ metadata.gz: 6e946f65c7d82b399bff9b24ad38f5f35692b1984fb3b24a746b9a79d949ff68
4
+ data.tar.gz: 22ca88e0d4c57564caafe1fbabd6fb2ec18fe85da30b78edec4286d0f807555f
5
5
  SHA512:
6
- metadata.gz: 95dad34c1553f33d38c7d3d9b2c2bf3c34a6d77739283ea601c1aa317c303dcd4d0d6399068486d783034ef2f9c5f1163b6c214d183acd7921b33c185fd0e853
7
- data.tar.gz: e619aee9600ad197991ff80de7adc41fa7ceb0fdcebf1770800ee7b6decb2325e75209d21beec9b8f98b55f7d7e3722d3616660f64794419d2dba791f54099f7
6
+ metadata.gz: 321defb1e6c775e1fdf69d85fba71f2265602be4db53705b204b4e10096d73c517762e71e910af09cf717bb112f736c1705802ccdfc44a1289ab9e5183f2fbe2
7
+ data.tar.gz: 58ab87995c99d0ff2059b9d7def178b3489276e18787c8744c66d43c2bc4d82f80ba959f19e31b3a3084e14c04d99515324ba69ec5b743fc267eb6bb091a8a65
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ ![takelage image](https://github.com/geospin-takelage/takelage-cli/actions/workflows/test_project_nightly.yml/badge.svg)
2
+
1
3
  # takelage-cli
2
4
 
3
5
  *takelage-cli* is a command line interface
@@ -59,22 +61,19 @@ tau [bit scope inbit](features/cucumber/features/bit/bit.scope.inbit.feature) |
59
61
  tau [bit scope list](features/cucumber/features/bit/bit.scope.list.feature) | List bit remote scopes
60
62
  tau [bit scope new](features/cucumber/features/bit/bit.scope.new.feature) [SCOPE] | Init a new bit [SCOPE]
61
63
  tau [completion bash](features/cucumber/features/completion/completion.bash.feature) | Print bash completion code
62
- tau [docker check running](features/cucumber/features/docker/docker.check.running.feature) | Check if docker daemon is running
64
+ tau [docker check daemon](features/cucumber/features/docker/docker.check.daemon.feature) | Check if docker daemon is running
65
+ tau [docker check socat](features/cucumber/features/docker/docker.check.socat.feature) | Check if socat command is available
63
66
  tau [docker container check existing](features/cucumber/features/docker/docker.container.check.existing.feature) [CONTAINER] | Check if docker [CONTAINER] is existing
64
67
  tau [docker container check network](features/cucumber/features/docker/docker.container.check.network.feature) [NETWORK] | Check if docker [NETWORK] is existing
65
68
  tau [docker container check orphaned](features/cucumber/features/docker/docker.container.check.orphaned.feature) [CONTAINER] | Check if docker [CONTAINER] is orphaned
69
+ tau [docker container clean](features/cucumber/features/docker/docker.container.clean.feature) | Remove all docker containers
66
70
  tau [docker container command](features/cucumber/features/docker/docker.container.command.feature) [CMD] | Run [CMD] in a docker container
67
71
  tau [docker container daemon](features/cucumber/features/docker/docker.container.daemon.feature) | Run docker container in daemon mode
68
72
  tau [docker container login](features/cucumber/features/docker/docker.container.login.feature) | Log in to latest local docker container
69
- tau [docker container clean](features/cucumber/features/docker/docker.container.clean.feature) | Remove all docker containers
70
73
  tau [docker container prune](features/cucumber/features/docker/docker.container.prune.feature) | Remove orphaned docker containers
71
- tau [docker image check outdated](features/cucumber/features/docker/docker.image.check.outdated.feature) | Check if a docker image is outdated
72
- tau [docker image tag check local](features/cucumber/features/docker/docker.image.tag.check.local.feature) [TAG] | Check if local docker image [TAG] exists
73
- tau [docker image tag check remote](features/cucumber/features/docker/docker.image.tag.check.remote.feature) [TAG] | Check if remote docker image [TAG] exists
74
- tau [docker image tag latest local](features/cucumber/features/docker/docker.image.tag.latest.local.feature) | Print latest local docker image tag
75
- tau [docker image tag latest remote](features/cucumber/features/docker/docker.image.tag.latest.remote.feature) | Print latest remote docker image tag
76
- tau [docker image tag list local](features/cucumber/features/docker/docker.image.tag.list.local.feature) | Print local docker image tags
77
- tau [docker image tag list remote](features/cucumber/features/docker/docker.image.tag.list.remote.feature) | Print remote docker image tags
74
+ tau [docker image tag check](features/cucumber/features/docker/docker.image.tag.check.feature) [TAG] | Check if local docker image [TAG] exists
75
+ tau [docker image tag latest](features/cucumber/features/docker/docker.image.tag.latest.feature) | Print latest local docker image tag
76
+ tau [docker image tag list](features/cucumber/features/docker/docker.image.tag.list.feature) | Print local docker image tags
78
77
  tau [docker image update](features/cucumber/features/docker/docker.image.update.feature) | Get latest remote docker container
79
78
  tau [docker socket host](features/cucumber/features/docker/docker.socket.host.feature) | Print docker socket host ip address
80
79
  tau [docker socket scheme](features/cucumber/features/docker/docker.socket.scheme.feature) | Print docker socket scheme
@@ -93,15 +92,15 @@ tau [self config home](features/cucumber/features/self/self.config.home.feature)
93
92
  tau [self config project](features/cucumber/features/self/self.config.project.feature) | Print takelage project config file configuration
94
93
  tau [self list](features/cucumber/features/self/self.list.feature) | List all commands
95
94
  tau [self version](features/cucumber/features/self/self.version.feature) | Print tau semantic version number
95
+ tau clean | Alias for tau [docker container clean](features/cucumber/features/docker/docker.container.clean.feature)
96
96
  tau config | Alias for tau [self config active](features/cucumber/features/self/self.config.active.feature)
97
97
  tau copy [DIR] [SCOPE] | Alias for tau [bit clipboard copy](features/cucumber/features/bit/bit.clipboard.copy.feature)
98
98
  tau list | Alias for tau [self list](features/cucumber/features/self/self.list.feature)
99
99
  tau login | Alias for tau [docker container login](features/cucumber/features/docker/docker.container.login.feature)
100
- tau clean | Alias for tau [docker container clean](features/cucumber/features/docker/docker.container.clean.feature)
101
100
  tau paste [COMPONENT] [DIR] | Alias for tau [bit clipboard paste](features/cucumber/features/bit/bit.clipboard.paste.feature)
102
101
  tau project | Alias for tau [info project active](features/cucumber/features/info/info.project.active.feature)
103
- tau pull | Alias for tau [bit clipboard pull](features/cucumber/features/bit/bit.clipboard.pull.feature)
104
102
  tau prune | Alias for tau [docker container prune](features/cucumber/features/docker/docker.container.prune.feature)
103
+ tau pull | Alias for tau [bit clipboard pull](features/cucumber/features/bit/bit.clipboard.pull.feature)
105
104
  tau push | Alias for tau [bit clipboard push](features/cucumber/features/bit/bit.clipboard.push.feature)
106
105
  tau update | Alias for tau [docker image update](features/cucumber/features/docker/docker.image.update.feature)
107
106
  tau version | Alias for tau [self version](features/cucumber/features/self/self.version.feature)
@@ -125,6 +124,9 @@ or *tau config*.
125
124
  | *~/.takelage.yml* | normal | User-wide configuration file in your home directory. This is your normal custom configuration file. |
126
125
  | *takelage.yml* | highest | Project-specific configuration file next to your main Rakefile. Some projects need special configuration. |
127
126
 
127
+ Please remember that a project directory is identified by the main
128
+ [Rakefile](Rakefile).
129
+
128
130
  ### Configuration Examples
129
131
 
130
132
  - You should add the following configuration items in your *~/.takelage.yml*
data/lib/takelage.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'etc'
4
+ require 'digest/bubblebabble'
4
5
  require 'fileutils'
5
6
  require 'fylla'
6
7
  require 'json'
@@ -30,7 +30,7 @@ cmd_bit_scope_list_find_scopes: 'find -L %{root} -name scope.json'
30
30
  cmd_bit_scope_new_bit_init: 'mkdir -p %{root}/%{scope} && cd %{root}/%{scope} && bit init --bare'
31
31
  cmd_bit_scope_remove_scope: 'rm --force --recursive %{root}/%{scope}'
32
32
  cmd_docker_check_daemon_docker_info: 'docker info'
33
- cmd_docker_check_socat_socat_version: 'socat -V'
33
+ cmd_docker_check_socat_which_socat: 'which socat'
34
34
  cmd_docker_container_check_existing_docker_ps: 'docker ps --filter name=^%{container}$ --quiet'
35
35
  cmd_docker_container_check_network_docker_network: 'docker network ls --quiet --filter name=^%{network}$'
36
36
  cmd_docker_container_check_orphaned_docker_exec: 'docker exec --interactive %{container} ps a'
@@ -9,10 +9,10 @@ module DockerCheckSocat
9
9
 
10
10
  log.debug 'Check if the socat command is available'
11
11
 
12
- status = try config.active['cmd_docker_check_socat_socat_version']
12
+ status = try config.active['cmd_docker_check_socat_which_socat']
13
13
 
14
14
  unless status.exitstatus.zero?
15
- log.error 'The socat command is not available'
15
+ log.debug 'The socat command is not available'
16
16
  return false
17
17
  end
18
18
 
@@ -37,7 +37,7 @@ module Takelage
37
37
  @docker_registry = config.active['docker_registry']
38
38
  @username = ENV['USER'] || 'noname'
39
39
  @workdir = Dir.getwd
40
- @hostname = "#{@docker_repo}_#{File.basename(@workdir)}"
40
+ @hostname = _docker_container_lib_hostname
41
41
  @socket_host = docker_socket_host
42
42
  @sockets = docker_socket_scheme
43
43
  end
@@ -6,6 +6,14 @@
6
6
  module DockerContainerLib
7
7
  private
8
8
 
9
+ # Create unique docker hostname
10
+ def _docker_container_lib_hostname
11
+ relative_name = "#{@docker_repo}_#{File.basename(@workdir)}"
12
+ absolute_name = "#{@docker_repo}_#{@workdir}"
13
+ digest = Digest::SHA256.bubblebabble absolute_name
14
+ "#{relative_name}_#{digest[0..10]}"
15
+ end
16
+
9
17
  # Create docker container and network.
10
18
  def _docker_container_lib_create_net_and_ctr(name)
11
19
  return false if _docker_container_lib_check_matrjoschka
@@ -110,6 +118,10 @@ module DockerContainerLib
110
118
  return false unless ENV.keys.include? 'TAKELAGE_PROJECT_BASE_DIR'
111
119
 
112
120
  log.error 'You cannot log in to takelage from within takelage'
121
+
122
+ # wait or the github workflow will fail
123
+ sleep 1
124
+
113
125
  true
114
126
  end
115
127
 
@@ -37,7 +37,7 @@ module Takelage
37
37
  #
38
38
  # docker image tag latest
39
39
  #
40
- desc 'list', 'Print latest docker image tag'
40
+ desc 'latest', 'Print latest docker image tag'
41
41
  long_desc <<-LONGDESC.gsub("\n", "\x5")
42
42
  Print latest docker image tag
43
43
  Print the tag of the docker image with the highest tag.
@@ -11,7 +11,11 @@ module DockerImageTagLatest
11
11
 
12
12
  tags = docker_image_tag_list
13
13
 
14
- tag_latest = tags[-1]
14
+ tag_latest = if tags.include? 'latest'
15
+ 'latest'
16
+ else
17
+ tags[-1]
18
+ end
15
19
 
16
20
  log.debug "Latest docker tag: #{tag_latest}"
17
21
 
data/lib/takelage/version CHANGED
@@ -1 +1 @@
1
- 0.23.1
1
+ 0.25.10
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: takelage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.1
4
+ version: 0.25.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geospin
@@ -288,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
288
  - !ruby/object:Gem::Version
289
289
  version: '0'
290
290
  requirements: []
291
- rubygems_version: 3.0.8
291
+ rubygems_version: 3.2.3
292
292
  signing_key:
293
293
  specification_version: 4
294
294
  summary: takelage devops workflow cli