ruby-pwsh 0.10.0 → 0.10.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 +4 -4
- data/.gitignore +3 -1
- data/CHANGELOG.md +10 -1
- data/Rakefile +64 -10
- data/lib/puppet/provider/dsc_base_provider/invoke_dsc_resource_functions.ps1 +1 -1
- data/lib/pwsh/version.rb +1 -1
- data/metadata.json +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdcbcec4cceaa40f4fabaad50f9d7409382c14eb1a98a345af5770aa1ae78f31
|
4
|
+
data.tar.gz: 48f16a70a2305b398a9098d453ae743a6c2630a94cdc8d6716250e1e4ee83464
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c19486fd5452d81c71e7939fddaa78c66972ddb425806fc894b1aeecf0cb94b917955d29245130095ee5c4c85d63f2ba12176b6ef8fe4ce7e6f9f653bb0224c
|
7
|
+
data.tar.gz: b12c1ab52269745152a29ce446876a3e06f3b9f9aab1d254157d8f93c6cccb1e7f997c118488229e22d8800a1a1a17af0557a8c0af2ea386d3e80e80c2f5bfd0
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,7 +2,16 @@
|
|
2
2
|
|
3
3
|
All notable changes to this project will be documented in this file.The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org).
|
4
4
|
|
5
|
-
## [0.10.
|
5
|
+
## [0.10.1](https://github.com/puppetlabs/ruby-pwsh/tree/0.10.1) (2021-08-23)
|
6
|
+
|
7
|
+
[Full Changelog](https://github.com/puppetlabs/ruby-pwsh/compare/0.10.0...0.10.1)
|
8
|
+
|
9
|
+
### Fixed
|
10
|
+
|
11
|
+
- \(GH-180\) Ensure instance\_key respects full uniqueness of options [\#181](https://github.com/puppetlabs/ruby-pwsh/pull/181) ([michaeltlombardi](https://github.com/michaeltlombardi))
|
12
|
+
- \(GH-165\) Ensure null-value nested cim instance arrays are appropriately munged [\#177](https://github.com/puppetlabs/ruby-pwsh/pull/177) ([michaeltlombardi](https://github.com/michaeltlombardi))
|
13
|
+
|
14
|
+
## [0.10.0](https://github.com/puppetlabs/ruby-pwsh/tree/0.10.0) (2021-07-02)
|
6
15
|
|
7
16
|
[Full Changelog](https://github.com/puppetlabs/ruby-pwsh/compare/0.9.0...0.10.0)
|
8
17
|
|
data/Rakefile
CHANGED
@@ -99,6 +99,63 @@ task :build_module do
|
|
99
99
|
File.open('README.md', 'wb') { |file| file.write(actual_readme_content) }
|
100
100
|
end
|
101
101
|
|
102
|
+
# Used in vendor_dsc_module
|
103
|
+
TAR_LONGLINK = '././@LongLink'
|
104
|
+
|
105
|
+
# Vendor a Puppetized DSC Module to spec/fixtures/modules.
|
106
|
+
#
|
107
|
+
# This is necessary because `puppet module install` fails on modules with
|
108
|
+
# long file paths, like xpsdesiredstateconfiguration
|
109
|
+
#
|
110
|
+
# @param command [String] command to execute.
|
111
|
+
# @return [Object] the standard out stream.
|
112
|
+
def vendor_dsc_module(name, version, destination)
|
113
|
+
require 'open-uri'
|
114
|
+
require 'rubygems/package'
|
115
|
+
require 'zlib'
|
116
|
+
|
117
|
+
module_uri = "https://forge.puppet.com/v3/files/dsc-#{name}-#{version}.tar.gz"
|
118
|
+
tar_gz_archive = File.expand_path("#{name}.tar.gz", ENV['TEMP'])
|
119
|
+
|
120
|
+
# Download the archive from the forge
|
121
|
+
File.open(tar_gz_archive, 'wb') do |file|
|
122
|
+
file.write(URI.open(module_uri).read) # rubocop:disable Security/Open
|
123
|
+
end
|
124
|
+
|
125
|
+
# Unzip to destination
|
126
|
+
# Taken directly from StackOverflow:
|
127
|
+
# - https://stackoverflow.com/a/19139114
|
128
|
+
Gem::Package::TarReader.new(Zlib::GzipReader.open(tar_gz_archive)) do |tar|
|
129
|
+
dest = nil
|
130
|
+
tar.each do |entry|
|
131
|
+
if entry.full_name == TAR_LONGLINK
|
132
|
+
dest = File.join(destination, entry.read.strip)
|
133
|
+
next
|
134
|
+
end
|
135
|
+
dest ||= File.join(destination, entry.full_name)
|
136
|
+
if entry.directory?
|
137
|
+
File.delete(dest) if File.file?(dest)
|
138
|
+
FileUtils.mkdir_p(dest, mode: entry.header.mode, verbose: false)
|
139
|
+
elsif entry.file?
|
140
|
+
FileUtils.rm_rf(dest) if File.directory?(dest)
|
141
|
+
File.open(dest, 'wb') do |f|
|
142
|
+
f.print(entry.read)
|
143
|
+
end
|
144
|
+
FileUtils.chmod(entry.header.mode, dest, verbose: false)
|
145
|
+
elsif entry.header.typeflag == '2' # Symlink!
|
146
|
+
File.symlink(entry.header.linkname, dest)
|
147
|
+
end
|
148
|
+
dest = nil
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
# Rename folder to just the module name, as needed by Puppet
|
153
|
+
Dir.glob("#{destination}/*#{name}*").each do |existing_folder|
|
154
|
+
new_folder = File.expand_path(name, destination)
|
155
|
+
FileUtils.mv(existing_folder, new_folder)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
102
159
|
namespace :dsc do
|
103
160
|
namespace :acceptance do
|
104
161
|
desc 'Prep for running DSC acceptance tests'
|
@@ -107,24 +164,21 @@ namespace :dsc do
|
|
107
164
|
modules_folder = File.expand_path('spec/fixtures/modules', File.dirname(__FILE__))
|
108
165
|
FileUtils.mkdir_p(modules_folder) unless Dir.exist?(modules_folder)
|
109
166
|
# symlink the parent folder to the modules folder for puppet
|
110
|
-
|
167
|
+
symlink_path = File.expand_path('pwshlib', modules_folder)
|
168
|
+
File.symlink(File.dirname(__FILE__), symlink_path) unless Dir.exist?(symlink_path)
|
111
169
|
# Install each of the required modules for acceptance testing
|
112
170
|
# Note: This only works for modules in the dsc namespace on the forge.
|
113
171
|
puppetized_dsc_modules = [
|
114
172
|
{ name: 'powershellget', version: '2.2.5-0-1' },
|
115
|
-
{ name: 'jeadsc', version: '0.7.2-0-2' } # update to 0.7.2-0-3 on release
|
173
|
+
{ name: 'jeadsc', version: '0.7.2-0-2' }, # update to 0.7.2-0-3 on release
|
174
|
+
{ name: 'xpsdesiredstateconfiguration', version: '9.1.0-0-1' },
|
175
|
+
{ name: 'xwebadministration', version: '3.2.0-0-2' },
|
176
|
+
{ name: 'accesscontroldsc', version: '1.4.1-0-3' }
|
116
177
|
]
|
117
178
|
puppetized_dsc_modules.each do |puppet_module|
|
118
179
|
next if Dir.exist?(File.expand_path(puppet_module[:name], modules_folder))
|
119
180
|
|
120
|
-
|
121
|
-
'bundle exec puppet module install',
|
122
|
-
"dsc-#{puppet_module[:name]}",
|
123
|
-
"--version #{puppet_module[:version]}",
|
124
|
-
'--ignore-dependencies',
|
125
|
-
"--target-dir #{modules_folder}"
|
126
|
-
].join(' ')
|
127
|
-
run_local_command(install_command)
|
181
|
+
vendor_dsc_module(puppet_module[:name], puppet_module[:version], modules_folder)
|
128
182
|
end
|
129
183
|
end
|
130
184
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
@@ -115,7 +115,7 @@ Function ConvertTo-CanonicalResult {
|
|
115
115
|
}
|
116
116
|
|
117
117
|
if ($Property.Definition -match 'InstanceArray') {
|
118
|
-
If ($Value.GetType().Name -notmatch '\[\]') { $Value = @($Value) }
|
118
|
+
If ($null -eq $Value -or $Value.GetType().Name -notmatch '\[\]') { $Value = @($Value) }
|
119
119
|
}
|
120
120
|
|
121
121
|
$ResultObject.$PropertyName = $Value
|
data/lib/pwsh/version.rb
CHANGED
data/metadata.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-pwsh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: PowerShell code manager for ruby.
|
14
14
|
email:
|