hatecf 0.0.4 → 0.1.1

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: ff51d0eb8d13e24dd523595c4f1f797bd20641fc408ff61c9e232fcaadfd18d2
4
- data.tar.gz: 0fc385fb0393ba6dd0b75b5508b23a41e6d67ccadf02eae40c85741712d1e7dd
3
+ metadata.gz: f676f5ae2e918677f40a743d982a5ffcbd061a3c0d2dd7bc043ee85c3d6c5da8
4
+ data.tar.gz: 1ab539b2ddde0464b7ed36dd02958afae19929c721513fe3b89e58cf29001c9d
5
5
  SHA512:
6
- metadata.gz: 7d7f45828e6513dd91e33facffadc7fddf8b5378476835c102f547187b7a5829032c4e3f8fdf9e25645a02e94b18fba1707185be7633cfb6907663c7df7579d6
7
- data.tar.gz: 481c41a7994bfc02c422c78aba2c81119217a2d698a259afbadcc99ede993f21f89214fd58a6bdc45822b18d082e9fdc17e81c51c99cc6984b04838e82c3f076
6
+ metadata.gz: d78d49b37f6b614aa53062626d98c2bf4642882b688b7f436be3ea6a383f25722fd9393b3773ca5fbc66a1babbfeb668ee5ece7dfb2d0d627b55135b86023412
7
+ data.tar.gz: 9806d0189e2f2ff6e21a85e98a17386b0ffe079208f871dd3a78c292d17e5ffb4b0d3d0f72ff9ecf9e5e263ac5b22f36598a79596753a91a2a79d48776b977b4
data/lib/local_dsl.rb CHANGED
@@ -123,6 +123,11 @@ def mkdir_p(x)
123
123
  TaskResult.new
124
124
  end
125
125
 
126
+ def rm(x)
127
+ Local.type_check nil, x, String
128
+ TaskResult.new
129
+ end
130
+
126
131
  def cp(src, dst, mode: nil)
127
132
  Local.type_check(1, src, String, LocalFile)
128
133
  Local.type_check(1, dst, String)
@@ -148,6 +153,28 @@ def ln_s(src, dst)
148
153
  TaskResult.new
149
154
  end
150
155
 
156
+ class CheckResult
157
+ def initialize(result)
158
+ @result = result
159
+ end
160
+ def fix
161
+ yield
162
+ end
163
+ def check(message = nil)
164
+ Local.type_check nil, message, String if message
165
+ # NOT yielding here. Check blocks contain code
166
+ # that works only on remote target.
167
+ CheckResult.new(false)
168
+ end
169
+ end
170
+
171
+ def check(message = nil)
172
+ Local.type_check nil, message, String if message
173
+ # NOT yielding here. Check blocks contain code
174
+ # that works only on remote target.
175
+ CheckResult.new(false)
176
+ end
177
+
151
178
  def block
152
179
  yield
153
180
  end
data/remote/remote.rb CHANGED
@@ -157,7 +157,7 @@ module Remote
157
157
  end
158
158
 
159
159
  def get_uid_and_gid_of_user(name)
160
- r = Etc.getpwnam(name).dir
160
+ r = Etc.getpwnam(name)
161
161
  [r.uid, r.gid]
162
162
  end
163
163
 
@@ -330,6 +330,17 @@ module Remote
330
330
  end
331
331
  end
332
332
 
333
+ def rm(x)
334
+ x = File.expand_path x
335
+ if File.exists? x
336
+ destructive "rm #{x}" do
337
+ FileUtils.rm x
338
+ end
339
+ else
340
+ ok "#{x} already removed"
341
+ end
342
+ end
343
+
333
344
  # TODO: the dst is a dir case
334
345
  def cp(src, dst, mode)
335
346
  src = src.remote_path if src.is_a? LocalFile
data/remote/remote_dsl.rb CHANGED
@@ -78,6 +78,12 @@ def mkdir_p(x)
78
78
  end
79
79
  end
80
80
 
81
+ def rm(x)
82
+ Remote.task do
83
+ Remote.rm(x)
84
+ end
85
+ end
86
+
81
87
  def cp(src, dst, mode: nil)
82
88
  Remote.task do
83
89
  Remote.cp(src, dst, mode)
@@ -96,6 +102,31 @@ def ln_s(src, dst)
96
102
  end
97
103
  end
98
104
 
105
+ class CheckResult
106
+ def initialize(result)
107
+ @result = result
108
+ end
109
+ def fix
110
+ yield unless @result
111
+ end
112
+ def check(message = nil)
113
+ if @result
114
+ # skip
115
+ CheckResult.new @result
116
+ else
117
+ result = yield
118
+ Remote.ok message if result && message
119
+ CheckResult.new result
120
+ end
121
+ end
122
+ end
123
+
124
+ def check(message = nil)
125
+ result = yield
126
+ Remote.ok message if result && message
127
+ CheckResult.new result
128
+ end
129
+
99
130
  def block
100
131
  Remote.block_contexts << false
101
132
  begin
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hatecf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Markov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-13 00:00:00.000000000 Z
11
+ date: 2024-12-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Configuration management engine like Ansible but without YAML and 30
14
14
  times faster