ddenv 0.1.0 → 0.1.2
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/.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"
|