pult 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4f5719e4a10fd6f1f1421c62042838d6e2af00bdba247d55960ee837d0c2d89
4
- data.tar.gz: 44a7c5e29feac0dd68400a6820258a161b0292d335eb0f0a17e59f1ef2214717
3
+ metadata.gz: fd367496b6d462a76af84c19e96ad15319fce3fae5f67d34670d66db4660a118
4
+ data.tar.gz: 84058482ed79fcad8f7967d98a35b9cd9483e19ac6b618e7c992127fc051f58e
5
5
  SHA512:
6
- metadata.gz: 0e4c22b4885c63d09b2bdef97b481d96cd66163377f007099fb029429731740784f6c0b6a3fa4f73f04b455a71535e91d3101f945546cc04a64ffd858a09718b
7
- data.tar.gz: 3d36c7748749278bedd87f2053fde930700fb78074c2a8540b2f24152a06b0c7bf0d91c77192402b54045f4cdb12330c053d5b7fcc6ffc620bcc0dfb56b3af5a
6
+ metadata.gz: 2704d2fc2c0a748d2a03ae6a045654370da7ff5bee9bf9f5c6a30e63927353c572dd03c5a84b631f02d5986ae02bdbe70b27ca295ffc3bfa9198343604a177c0
7
+ data.tar.gz: 861c1ab8c9846dfd9586f163f23fa1f2fd6190578a804acd5afd9763bfe63ce9ec9ec4c5d153692bd585025b4e9527f34a00035ffe62db324885c2e0b0264877
data/lib/init/req-proj.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require_relative '../pult/version'
2
+ require_relative '../pult/cli'
2
3
  require_relative '../pult/executor'
3
4
  require_relative '../pult/executor/enver'
4
5
  require_relative '../pult/executor/screener'
data/lib/init/struct.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  module Pult
2
+ class Cli; end
3
+
2
4
  class Executor
3
5
  class Job < ActiveJob::Base; end
4
6
  module Enver; end
@@ -1,4 +1,4 @@
1
- class Pult::CliRunner
1
+ class Pult::Cli
2
2
 
3
3
  def self.start
4
4
 
@@ -1,31 +1,62 @@
1
1
  module Pult::Executor::Enver
2
2
 
3
- # TODO
4
- DEFENV = ENV.to_h
3
+ CURRENT = ENV.to_h
5
4
 
6
- def with_env env=ENV.to_h, env_base=DEFENV
7
- env_delete_diff! env, env_base
8
-
9
- yield
5
+ ENVS = ENV['PULT_ENV_DEFAULT'] || ENV['PULT_ENV_BASE']
6
+
7
+ ENV_BASE = !!ENV['PULT_ENV_BASE']
8
+
9
+ DEFAULT_VARS = ENVS&.split(/=.+?"?\n/)
10
+
11
+ DEFAULT = DEFAULT_VARS ?
12
+ CURRENT.select{|k, v| DEFAULT_VARS.include?(k) } : CURRENT
13
+
14
+ RESOLVER = {
15
+ default: DEFAULT,
16
+ current: CURRENT
17
+ }
18
+
19
+ def with_env resolver_or_env
20
+ env = RESOLVER[resolver_or_env] || resolver_or_env
10
21
 
11
- env_set_diff! env, env_base
22
+ if env.is_a?(Hash)
23
+ ENV_BASE ? env_set!(env) : env_set(env)
24
+
25
+ yield
26
+
27
+ env_set!(CURRENT)
28
+ else
29
+ raise ArgumentError, 'Env not resolved'
30
+ end
12
31
  end
13
32
 
14
- def env_delete_diff! env, env_base
15
- env_diff(env, env_base).each do |var|
33
+ private
34
+
35
+ def env_set env
36
+ ENV.keys.each do |var|
37
+ ENV[var] = env[var] if env[var]
38
+ end
39
+ end
40
+
41
+ def env_set! env
42
+ ENV.keys.each do |var|
43
+ env[var] ? ENV[var] = env[var] : ENV.delete(var)
44
+ end
45
+ end
46
+
47
+ def env_delete_diff! env1, env2
48
+ diff(env1, env2).each do |var|
16
49
  ENV.delete(var)
17
50
  end
18
51
  end
19
52
 
20
- def env_set_diff! env, env_base
21
- env_diff(env, env_base).each do |var|
53
+ def env_set_diff! env1, env2
54
+ diff(env1, env2).each do |var|
22
55
  ENV[var] = env[var]
23
56
  end
24
57
  end
25
58
 
26
- private
27
-
28
- def env_diff env, env_base
29
- env_base.keys - env.keys
59
+ def diff env1, env2
60
+ env2.keys - env1.keys
30
61
  end
31
62
  end
data/lib/pult/executor.rb CHANGED
@@ -50,7 +50,7 @@ class Pult::Executor
50
50
  def execute_here!
51
51
  params = [ @params, @command, chdir: @dir ]
52
52
 
53
- with_env do
53
+ with_env :default do
54
54
  Open3.popen3( *params ) do |stdin, stdout, stderr, thr|
55
55
  @runner = {
56
56
  stdout: stdout.read,
data/lib/pult/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pult
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pult
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - dmitryck
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-03 00:00:00.000000000 Z
11
+ date: 2019-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,7 +116,7 @@ files:
116
116
  - lib/init/req-proj.rb
117
117
  - lib/init/struct.rb
118
118
  - lib/pult.rb
119
- - lib/pult/cli_runner.rb
119
+ - lib/pult/cli.rb
120
120
  - lib/pult/executor.rb
121
121
  - lib/pult/executor/enver.rb
122
122
  - lib/pult/executor/screener.rb