ddenv 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +6 -0
- data/CHANGELOG.md +9 -0
- data/README.md +62 -39
- data/TODO.md +6 -0
- data/ddenv.yaml +6 -0
- data/lib/ddenv/cli.rb +19 -15
- data/lib/ddenv/commands/up.rb +15 -8
- data/lib/ddenv/config.rb +11 -2
- data/lib/ddenv/goal.rb +32 -0
- data/lib/ddenv/goals/bundle_installed.rb +31 -0
- data/lib/ddenv/goals/gem_installed.rb +32 -0
- data/lib/ddenv/goals/homebrew_package_installed.rb +6 -0
- data/lib/ddenv/goals/node_build_installed.rb +11 -0
- data/lib/ddenv/goals/node_installed.rb +47 -0
- data/lib/ddenv/goals/node_shadowenv_created.rb +52 -0
- data/lib/ddenv/goals/npm_packages_installed.rb +26 -0
- data/lib/ddenv/goals/ruby_install_installed.rb +11 -0
- data/lib/ddenv/goals/ruby_installed.rb +44 -0
- data/lib/ddenv/goals/ruby_shadowenv_created.rb +78 -0
- data/lib/ddenv/goals/shadowenv_dir_created.rb +34 -0
- data/lib/ddenv/goals/shadowenv_dir_git_ignored.rb +22 -0
- data/lib/ddenv/goals/shadowenv_initialized.rb +30 -0
- data/lib/ddenv/goals/shadowenv_trusted.rb +28 -0
- data/lib/ddenv/version.rb +1 -1
- data/lib/ddenv.rb +16 -1
- data/package-lock.json +870 -0
- data/package.json +22 -0
- metadata +46 -3
- data/dev.yml +0 -4
- data/lib/ddenv/commands/help.rb +0 -12
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ddenv
|
4
|
+
module Goals
|
5
|
+
class ShadowenvDirCreated < Goal
|
6
|
+
PATH = ".shadowenv.d"
|
7
|
+
|
8
|
+
def message
|
9
|
+
"Creating .shadowenv.d"
|
10
|
+
end
|
11
|
+
|
12
|
+
def achieved?
|
13
|
+
Pathname.new(PATH).directory?
|
14
|
+
end
|
15
|
+
|
16
|
+
def achieve
|
17
|
+
FileUtils.mkdir_p(PATH)
|
18
|
+
end
|
19
|
+
|
20
|
+
def pre_goals
|
21
|
+
[
|
22
|
+
Ddenv::Goals::ShadowenvInitialized.new
|
23
|
+
]
|
24
|
+
end
|
25
|
+
|
26
|
+
def post_goals
|
27
|
+
[
|
28
|
+
Ddenv::Goals::ShadowenvDirGitIgnored.new,
|
29
|
+
Ddenv::Goals::ShadowenvTrusted.new
|
30
|
+
]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ddenv
|
4
|
+
module Goals
|
5
|
+
class ShadowenvDirGitIgnored < Goal
|
6
|
+
PATH = ".shadowenv.d/.gitignore"
|
7
|
+
CONTENTS = "*\n"
|
8
|
+
|
9
|
+
def message
|
10
|
+
"Adding .shadowenv.d to .gitignore"
|
11
|
+
end
|
12
|
+
|
13
|
+
def achieved?
|
14
|
+
File.file?(PATH) && File.read(PATH) == CONTENTS
|
15
|
+
end
|
16
|
+
|
17
|
+
def achieve
|
18
|
+
File.write(PATH, CONTENTS)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ddenv
|
4
|
+
module Goals
|
5
|
+
class ShadowenvInitialized < Goal
|
6
|
+
FISH_LINE = "shadowenv init fish | source"
|
7
|
+
|
8
|
+
def message
|
9
|
+
"Initializing Shadowenv"
|
10
|
+
end
|
11
|
+
|
12
|
+
# TODO: support bash and zsh
|
13
|
+
|
14
|
+
def achieved?
|
15
|
+
fish_config = File.read(fish_config_path)
|
16
|
+
fish_config.lines.any? { _1.chomp == FISH_LINE }
|
17
|
+
end
|
18
|
+
|
19
|
+
def achieve
|
20
|
+
File.write(fish_config_path, "\n\n#{FISH_LINE}", mode: "a+")
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def fish_config_path
|
26
|
+
@_fish_config_path ||= File.expand_path("~/.config/fish/config.fish")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Ddenv
|
4
|
+
module Goals
|
5
|
+
class ShadowenvTrusted < Goal
|
6
|
+
def message
|
7
|
+
"Trusting .shadowenv.d"
|
8
|
+
end
|
9
|
+
|
10
|
+
def achieved?
|
11
|
+
# TODO: use :pretty when passing --verbose
|
12
|
+
cmd = TTY::Command.new(printer: :null)
|
13
|
+
begin
|
14
|
+
cmd.run("shadowenv", "exec", "--", "ls")
|
15
|
+
rescue StandardError
|
16
|
+
return false
|
17
|
+
end
|
18
|
+
true
|
19
|
+
end
|
20
|
+
|
21
|
+
def achieve
|
22
|
+
# TODO: use :pretty when passing --verbose
|
23
|
+
cmd = TTY::Command.new(printer: :null)
|
24
|
+
cmd.run("shadowenv", "trust")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/ddenv/version.rb
CHANGED
data/lib/ddenv.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "json"
|
4
|
+
require "pathname"
|
4
5
|
require "yaml"
|
5
6
|
|
7
|
+
require "cri"
|
6
8
|
require "tty-command"
|
9
|
+
require "tty-spinner"
|
7
10
|
|
8
11
|
require_relative "ddenv/cli"
|
9
12
|
require_relative "ddenv/command"
|
@@ -13,7 +16,19 @@ require_relative "ddenv/homebrew"
|
|
13
16
|
require_relative "ddenv/subclass_responsibility_error"
|
14
17
|
require_relative "ddenv/version"
|
15
18
|
|
16
|
-
require_relative "ddenv/commands/help"
|
17
19
|
require_relative "ddenv/commands/up"
|
18
20
|
|
19
21
|
require_relative "ddenv/goals/homebrew_package_installed"
|
22
|
+
require_relative "ddenv/goals/ruby_install_installed"
|
23
|
+
require_relative "ddenv/goals/ruby_installed"
|
24
|
+
require_relative "ddenv/goals/ruby_shadowenv_created"
|
25
|
+
require_relative "ddenv/goals/bundle_installed"
|
26
|
+
require_relative "ddenv/goals/gem_installed"
|
27
|
+
require_relative "ddenv/goals/node_build_installed"
|
28
|
+
require_relative "ddenv/goals/node_installed"
|
29
|
+
require_relative "ddenv/goals/npm_packages_installed"
|
30
|
+
require_relative "ddenv/goals/node_shadowenv_created"
|
31
|
+
require_relative "ddenv/goals/shadowenv_initialized"
|
32
|
+
require_relative "ddenv/goals/shadowenv_dir_created"
|
33
|
+
require_relative "ddenv/goals/shadowenv_dir_git_ignored"
|
34
|
+
require_relative "ddenv/goals/shadowenv_trusted"
|