dotman-bin 2.0.3 → 2.0.7
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/bin/dotman +18 -12
- data/lib/dotman/actions/init.rb +5 -3
- data/lib/dotman/actions/link.rb +5 -3
- data/lib/dotman/checks/host.rb +5 -3
- data/lib/dotman/dotfile_configuration.rb +3 -2
- data/lib/dotman/shell/comparison.rb +7 -5
- data/lib/dotman/shell/statement.rb +0 -1
- data/lib/dotman/version.rb +1 -1
- data/lib/dotman.rb +1 -1
- metadata +21 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b7996be636ad86d7132d39ea51e97d8de901130f5a3366c11f36ff0a1f8b7e07
|
|
4
|
+
data.tar.gz: a178d6482f4cc1b80dbf5f8b0886f3d137acfcce0f64b330638f8ecce8932528
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2c82ef0087598bff8cbc4f94fdf47cd5d3f249a5b3d97d6c6644eeaf682e9b3a22d3529426333a174a6bdba1a0f276817448f04da3c9226334f33b5ff22de65a
|
|
7
|
+
data.tar.gz: 557fd72ffbfa49a9cf15a64c9502d61fd06bb1859f847a1c3ea5dc681bb7a44e245abfc8a1ce0b527490f97b684a83066378b07ec4464f3388fc0e2a28972f4d
|
data/bin/dotman
CHANGED
|
@@ -6,38 +6,44 @@ class Main
|
|
|
6
6
|
DOTFILE = 'Dotfile'
|
|
7
7
|
|
|
8
8
|
def self.run(opts)
|
|
9
|
+
if opts['--version']
|
|
10
|
+
puts VERSION
|
|
11
|
+
exit
|
|
12
|
+
end
|
|
13
|
+
|
|
9
14
|
unless File.exist?(DOTFILE)
|
|
10
15
|
puts 'Dotfile not found'.red
|
|
11
16
|
exit 1
|
|
12
17
|
end
|
|
13
18
|
|
|
14
19
|
class << Dotfile
|
|
15
|
-
load
|
|
20
|
+
load(DOTFILE)
|
|
16
21
|
end
|
|
17
22
|
|
|
18
23
|
env = {
|
|
19
24
|
base: opts['--base'],
|
|
20
|
-
home: opts['--home']
|
|
25
|
+
home: opts['--home'],
|
|
21
26
|
}
|
|
22
27
|
|
|
23
28
|
puts Dotfile.to_script(env)
|
|
24
29
|
end
|
|
25
30
|
end
|
|
26
31
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
dotman [
|
|
32
|
+
usage = <<~EOF
|
|
33
|
+
Usage:
|
|
34
|
+
dotman [--home PATH] --base PATH build
|
|
35
|
+
dotman ( --version | --help )
|
|
30
36
|
|
|
31
|
-
|
|
32
|
-
-b, --base
|
|
33
|
-
--home
|
|
37
|
+
Options:
|
|
38
|
+
-b, --base PATH Directory from where configuration files should be sourced
|
|
39
|
+
--home PATH Directory where symlinks should be placed [default: $HOME]
|
|
34
40
|
-v, --version Show version
|
|
35
41
|
-h, --help Show this help
|
|
36
42
|
EOF
|
|
37
43
|
|
|
38
44
|
begin
|
|
39
|
-
Main.run(Docopt
|
|
40
|
-
rescue Docopt::Exit
|
|
41
|
-
puts
|
|
42
|
-
exit
|
|
45
|
+
Main.run(Docopt.docopt(usage))
|
|
46
|
+
rescue Docopt::Exit
|
|
47
|
+
puts usage
|
|
48
|
+
exit 2
|
|
43
49
|
end
|
data/lib/dotman/actions/init.rb
CHANGED
|
@@ -20,10 +20,12 @@ module Dotman::Action
|
|
|
20
20
|
|
|
21
21
|
def die
|
|
22
22
|
Shell.block([
|
|
23
|
-
Shell.echo(
|
|
24
|
-
|
|
23
|
+
Shell.echo(
|
|
24
|
+
:red,
|
|
25
|
+
'One or more core environment variables is missing; cannot continue.',
|
|
26
|
+
),
|
|
27
|
+
Shell.exit(1),
|
|
25
28
|
])
|
|
26
29
|
end
|
|
27
|
-
|
|
28
30
|
end
|
|
29
31
|
end
|
data/lib/dotman/actions/link.rb
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
module Dotman::Action
|
|
2
2
|
class Link
|
|
3
3
|
def initialize(from, to)
|
|
4
|
-
@from
|
|
4
|
+
@from = from
|
|
5
|
+
@to = to
|
|
5
6
|
end
|
|
6
7
|
|
|
7
8
|
def to_statement
|
|
@@ -10,7 +11,8 @@ module Dotman::Action
|
|
|
10
11
|
|
|
11
12
|
private
|
|
12
13
|
|
|
13
|
-
attr_reader :from
|
|
14
|
+
attr_reader :from
|
|
15
|
+
attr_reader :to
|
|
14
16
|
|
|
15
17
|
def pair
|
|
16
18
|
[from, to]
|
|
@@ -32,7 +34,7 @@ module Dotman::Action
|
|
|
32
34
|
|
|
33
35
|
dirname = File.dirname(pair[1])
|
|
34
36
|
if dirname != '.'
|
|
35
|
-
block.prepend
|
|
37
|
+
block.prepend(Shell.command('mkdir --parents $HOME_DIR/%s' % dirname))
|
|
36
38
|
end
|
|
37
39
|
|
|
38
40
|
Shell.block(block)
|
data/lib/dotman/checks/host.rb
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
module Dotman::Check
|
|
2
2
|
class Host
|
|
3
3
|
def initialize(aliases, hosts, include: true)
|
|
4
|
-
@aliases
|
|
4
|
+
@aliases = aliases
|
|
5
|
+
@hosts = hosts
|
|
6
|
+
@include = include
|
|
5
7
|
end
|
|
6
8
|
|
|
7
9
|
def to_comparison
|
|
@@ -11,11 +13,11 @@ module Dotman::Check
|
|
|
11
13
|
private
|
|
12
14
|
|
|
13
15
|
def condition_operator
|
|
14
|
-
|
|
16
|
+
@include ? :or : :and
|
|
15
17
|
end
|
|
16
18
|
|
|
17
19
|
def comparison_operator
|
|
18
|
-
|
|
20
|
+
@include ? '=' : '!='
|
|
19
21
|
end
|
|
20
22
|
|
|
21
23
|
def compare(host)
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
module Dotman
|
|
2
2
|
class DotfileConfiguration
|
|
3
3
|
def initialize
|
|
4
|
-
@actions
|
|
4
|
+
@actions = []
|
|
5
|
+
@host_aliases = {}
|
|
5
6
|
end
|
|
6
7
|
|
|
7
8
|
def link(from, to: nil, **args)
|
|
8
|
-
add_action
|
|
9
|
+
add_action(Action::Link.new(from, to), args)
|
|
9
10
|
end
|
|
10
11
|
|
|
11
12
|
def to_script(env)
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
module Dotman::Shell
|
|
2
2
|
class Comparison
|
|
3
|
-
def initialize(
|
|
4
|
-
@
|
|
3
|
+
def initialize(operand_1, operator, operand_2 = nil)
|
|
4
|
+
@operand_1 = operand_1
|
|
5
|
+
@operator = operator
|
|
6
|
+
@operand_2 = operand_2
|
|
5
7
|
end
|
|
6
8
|
|
|
7
9
|
def to_s
|
|
8
|
-
if @
|
|
9
|
-
'[ %s "%s" ]' % [@operator, @
|
|
10
|
+
if @operand_2.nil?
|
|
11
|
+
'[ %s "%s" ]' % [@operator, @operand_1]
|
|
10
12
|
else
|
|
11
|
-
'[ "%s" %s "%s" ]' % [
|
|
13
|
+
'[ "%s" %s "%s" ]' % [@operand_1, @operator, @operand_2]
|
|
12
14
|
end
|
|
13
15
|
end
|
|
14
16
|
end
|
data/lib/dotman/version.rb
CHANGED
data/lib/dotman.rb
CHANGED
metadata
CHANGED
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dotman-bin
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- crdx
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-11-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: colorize
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 0.8.1
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
26
|
+
version: 0.8.1
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
28
|
+
name: docopt
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.
|
|
33
|
+
version: 0.6.1
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.
|
|
40
|
+
version: 0.6.1
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
42
|
+
name: require_all
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0
|
|
47
|
+
version: '3.0'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 0
|
|
54
|
+
version: '3.0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: rake
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: '13.0'
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: '13.0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: rspec
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -81,19 +81,19 @@ dependencies:
|
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '3.8'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
84
|
+
name: simplecov
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
89
|
+
version: 0.21.0
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
96
|
+
version: 0.21.0
|
|
97
97
|
description:
|
|
98
98
|
email:
|
|
99
99
|
executables:
|
|
@@ -118,7 +118,8 @@ files:
|
|
|
118
118
|
homepage: https://github.com/crdx/dotman
|
|
119
119
|
licenses:
|
|
120
120
|
- MIT
|
|
121
|
-
metadata:
|
|
121
|
+
metadata:
|
|
122
|
+
rubygems_mfa_required: 'true'
|
|
122
123
|
post_install_message:
|
|
123
124
|
rdoc_options: []
|
|
124
125
|
require_paths:
|
|
@@ -127,14 +128,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
127
128
|
requirements:
|
|
128
129
|
- - ">="
|
|
129
130
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: '0'
|
|
131
|
+
version: '3.0'
|
|
131
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
133
|
requirements:
|
|
133
134
|
- - ">="
|
|
134
135
|
- !ruby/object:Gem::Version
|
|
135
136
|
version: '0'
|
|
136
137
|
requirements: []
|
|
137
|
-
rubygems_version: 3.2.
|
|
138
|
+
rubygems_version: 3.2.29
|
|
138
139
|
signing_key:
|
|
139
140
|
specification_version: 4
|
|
140
141
|
summary: Manage dotfiles
|