Title: Question about ModuleBuild-Extension:
Open Graph Title: Question about ModuleBuild-Extension:
X Title: Question about ModuleBuild-Extension:
Description: Good evening Zachary In
Open Graph Description: Good evening Zachary In
X Description: Good evening Zachary In <Modulename>.build.ps1 you naturally have a lot of Join-Path statements. I tried to understand your code (to extend it) and had to fight a lot :-). Therefore, I create...
Opengraph URL: https://github.com/ModuleBuild/ModuleBuild/issues/14
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Question about ModuleBuild-Extension: \u003cModulename\u003e.build.ps1: less Join-Path statements","articleBody":"Good evening Zachary\r\n\r\nIn `\u003cModulename\u003e.build.ps1` you naturally have a lot of Join-Path statements. I tried to understand your code (to extend it) and had to fight a lot :-). \r\nTherefore, I created one function which calculates all used Path- and File-Names. This Function is called at the beginning of almost every task to that it has all Path- and File-Names. It looks like this:\r\n```\r\n# Calculates all Directories used in a build\r\nFunction Get-Buid-Directories {\r\n $Dirs = ([ordered] @{\r\n # Applied Config Variables\r\n BuildReportsFolder = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BuildReportsFolder)\r\n BuildToolPath = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BuildToolFolder)\r\n TranscriptLog = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BuildToolFolder, $Script:BuildEnv.OptionTranscriptLogFile)\r\n CodeHealthScanPathPublic = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.PublicFunctionSource)\r\n CodeHealthScanPathPrivate = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.PrivateFunctionSource)\r\n ReleasePath = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BaseReleaseFolder)\r\n CurrentReleasePath = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BaseReleaseFolder, $Script:BuildEnv.ModuleToBuild)\r\n ThisReleasePath = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BaseReleaseFolder, $Script:BuildEnv.ModuleVersion)\r\n # Other Files and Dirs\r\n BuildTools = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BuildToolFolder, 'dotSource')\r\n ModuleManifestFileName = [IO.Path]::Combine($BuildRoot, \"$($Script:BuildEnv.ModuleToBuild).psd1\")\r\n ScriptModuleFileName = [IO.Path]::Combine($BuildRoot, \"$($Script:BuildEnv.ModuleToBuild).psm1\")\r\n CodeHealthReportPublic = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BuildReportsFolder, 'CodeHealthReport-Public.html')\r\n CodeHealthReportPrivate = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BuildReportsFolder, 'CodeHealthReport-Private.html')\r\n RootDocsPath = [IO.Path]::Combine($BuildRoot, 'docs')\r\n RootDocsFunctionsPath = [IO.Path]::Combine($BuildRoot, 'docs', 'Functions')\r\n BuildDocsPath = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BuildToolFolder, 'docs')\r\n CurrentModuleManifestFile = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.BaseReleaseFolder, $Script:BuildEnv.ModuleToBuild, \"$($Script:BuildEnv.ModuleToBuild).psd1\")\r\n # Staging Dirs\r\n StagePath = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder)\r\n StagePathEnUs = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, 'en-US')\r\n StageReleasePath = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, $Script:BuildEnv.BaseReleaseFolder)\r\n StagePSD1OutputFile = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, $Script:BuildEnv.BaseReleaseFolder, \"$($Script:BuildEnv.ModuleToBuild).psd1\")\r\n StageReleaseModul = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, $Script:BuildEnv.BaseReleaseFolder, \"$($Script:BuildEnv.ModuleToBuild).psm1\")\r\n StagePreloadFilePath = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, \"$($Script:BuildEnv.OtherModuleSource)\", 'PreLoad.ps1')\r\n StagePrivateFunctionSourceFiles = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, \"$($Script:BuildEnv.PrivateFunctionSource)\", '*.ps1')\r\n StagePublicFunctionSourceFiles = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, \"$($Script:BuildEnv.PublicFunctionSource)\", '*.ps1')\r\n StagePostLoadFileName = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, \"$($Script:BuildEnv.OtherModuleSource)\", 'PostLoad.ps1')\r\n StageOtherModuleSourceDir = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, $Script:BuildEnv.OtherModuleSource)\r\n StagePrivateFunctionSourceDir = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, $Script:BuildEnv.PrivateFunctionSource)\r\n StagePublicFunctionSourceDir = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, $Script:BuildEnv.PublicFunctionSource)\r\n StageModuleToBuildDir = [IO.Path]::Combine($BuildRoot, $Script:BuildEnv.ScratchFolder, $Script:BuildEnv.ModuleToBuild)\r\n })\r\n # Return a Object\r\n $oDirs = New-Object PSObject -Property $Dirs\r\n $oDirs\r\n}\r\n```\r\n\r\nI guess the Hashtable could be sorted better, but for contributors like myself, this helps a lot to just get an overview of all used path- and filenames and to undestand what's happening.\r\n\r\n","author":{"url":"https://github.com/schittli","@type":"Person","name":"schittli"},"datePublished":"2018-04-09T19:29:00.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/14/ModuleBuild/issues/14"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:baadf146-9b2e-24df-bebc-3305abb57212 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 839A:29F76B:1AFCFC0:255F4A4:698DC041 |
| html-safe-nonce | de8e5fbffc9867c583357cfa9591822e811a6f658df2ba0e90dace9fc4109b6a |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MzlBOjI5Rjc2QjoxQUZDRkMwOjI1NUY0QTQ6Njk4REMwNDEiLCJ2aXNpdG9yX2lkIjoiMzE5ODE2MzEyMjg4OTAxNTM2MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | daa2feaafcff2f75b7c5c6e7e489d24531724f93fc7bcf3441b459f2bd341d4c |
| hovercard-subject-tag | issue:312656542 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/ModuleBuild/ModuleBuild/14/issue_layout |
| twitter:image | https://opengraph.githubassets.com/61fa1a74efba5ae5f6da870f8659135a4fd033b63ac17fd115e42aa0d8d2e7e0/ModuleBuild/ModuleBuild/issues/14 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/61fa1a74efba5ae5f6da870f8659135a4fd033b63ac17fd115e42aa0d8d2e7e0/ModuleBuild/ModuleBuild/issues/14 |
| og:image:alt | Good evening Zachary In |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | schittli |
| hostname | github.com |
| expected-hostname | github.com |
| None | 2457fd9a1b17ca7f38c3c2653895ccb2e0dd04f18f77446a21354e9bc4b7902f |
| turbo-cache-control | no-preview |
| go-import | github.com/ModuleBuild/ModuleBuild git https://github.com/ModuleBuild/ModuleBuild.git |
| octolytics-dimension-user_id | 64282347 |
| octolytics-dimension-user_login | ModuleBuild |
| octolytics-dimension-repository_id | 93702203 |
| octolytics-dimension-repository_nwo | ModuleBuild/ModuleBuild |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 93702203 |
| octolytics-dimension-repository_network_root_nwo | ModuleBuild/ModuleBuild |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 878672b82363fd98fbdc5bd0edb68e572c8a8d9b |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width