Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8b07dc0

Browse files
authored
Merge pull request#762 from SteveL-MSFT/appx-discover
Experimental Appx resource discovery extension
2 parentsad75d30 +58fcd21 commit8b07dc0

File tree

8 files changed

+49
-3
lines changed

8 files changed

+49
-3
lines changed

‎build.ps1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ if ($GetPackageVersion) {
3838
}
3939

4040
$filesForWindowsPackage=@(
41+
'appx.dsc.extension.json',
42+
'appx-discover.ps1',
4143
'dsc.exe',
4244
'dsc_default.settings.json',
4345
'dsc.settings.json',
@@ -250,7 +252,7 @@ if (!$SkipBuild) {
250252
}
251253

252254
# make sure dependencies are built first so clippy runs correctly
253-
$windows_projects=@("pal","registry","reboot_pending","wmi-adapter","configurations/windows")
255+
$windows_projects=@("pal","registry","reboot_pending","wmi-adapter","configurations/windows",'extensions/appx')
254256
$macOS_projects=@("resources/brew")
255257
$linux_projects=@("resources/apt")
256258

‎dsc_lib/locales/en-us.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ resourceManifestSchemaDescription = "Defines the JSON Schema the resource manife
170170
[extensions.dscextension]
171171
discoverNoResults ="No results returned for discovery extension '%{extension}'"
172172
discoverNotAbsolutePath ="Resource path from extension '%{extension}' is not an absolute path: %{path}"
173+
extensionReturned ="Extension '%{extension}' returned line: %{line}"
173174

174175
[extensions.extension_manifest]
175176
extensionManifestSchemaTitle ="Extension manifest schema URI"

‎dsc_lib/src/discovery/command_discovery.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ fn insert_resource(resources: &mut BTreeMap<String, Vec<DscResource>>, resource:
567567
},
568568
};
569569
// if the version already exists, we might skip it
570-
if!skip_duplicate_version && resource_instance_version == resource_version{
570+
if skip_duplicate_version && resource_instance_version == resource_version{
571571
return;
572572
}
573573

‎dsc_lib/src/extensions/dscextension.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use serde::{Deserialize, Serialize};
66
use serde_json::Value;
77
use schemars::JsonSchema;
88
use std::{fmt::Display, path::Path};
9-
use tracing::info;
9+
use tracing::{info, trace};
1010

1111
usecrate::{discovery::command_discovery::{load_manifest,ImportedManifest}, dscerror::DscError, dscresources::{command_resource::{invoke_command, process_args}, dscresource::DscResource}};
1212

@@ -99,6 +99,7 @@ impl DscExtension {
9999
info!("{}", t!("extensions.dscextension.discoverNoResults", extension =self.type_name));
100100
}else{
101101
for linein stdout.lines(){
102+
trace!("{}", t!("extensions.dscextension.extensionReturned", extension =self.type_name, line = line));
102103
let discover_result:DiscoverResult =match serde_json::from_str(line){
103104
Ok(result) => result,
104105
Err(err) =>{

‎extensions/appx/appx-discover.ps1

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
$packages=Get-AppxPackage
2+
foreach ($packagein$packages) {
3+
$manifests=Get-ChildItem-Path"$($package.InstallLocation)\*"-File-Include'*.dsc.resource.json','*.dsc.resource.yaml','*.dsc.resource.yml'-ErrorAction Ignore
4+
foreach ($manifestin$manifests) {
5+
@{manifestPath=$manifest.FullName }|ConvertTo-Json-Compress
6+
}
7+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"$schema":"https://aka.ms/dsc/schemas/v3/bundled/resource/manifest.json",
3+
"type":"Microsoft.Windows.Appx/Discover",
4+
"version":"0.1.0",
5+
"description":"Discovers DSC resources packaged as Appx packages.",
6+
"discover": {
7+
"executable":"powershell",
8+
"args": [
9+
"-NoLogo",
10+
"-NonInteractive",
11+
"-NoProfile",
12+
"-Command",
13+
"./appx-discover.ps1"
14+
]
15+
}
16+
}

‎extensions/appx/appx.tests.ps1

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Copyright (c) Microsoft Corporation.
2+
# Licensed under the MIT License.
3+
4+
Describe'Tests for Appx resource discovery'-Skip:(!$IsWindows){
5+
It'Should find DSC appx resources' {
6+
$out= dsc resource list|ConvertFrom-Json
7+
$LASTEXITCODE| Should-Be0
8+
$found=$false
9+
foreach ($resourcein$out) {
10+
if ($resource.directory.StartsWith("$env:ProgramFiles\WindowsApps\Microsoft.DesiredStateConfiguration-Private")) {
11+
$found=$true
12+
break
13+
}
14+
}
15+
$found| Should-Be$true
16+
}
17+
}

‎extensions/appx/copy_files.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
appx-discover.ps1
2+
appx.dsc.extension.json

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp