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: github.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:f1ee8fde-7029-08d8-375f-a1e6550d7185 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A962:16945C:4FEC62:6BB83D:698E1F1F |
| html-safe-nonce | 8b8b53f8d23fec4884a338eebd4f2ea2905dd35067b0d8d3acd319d31994cabf |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBOTYyOjE2OTQ1Qzo0RkVDNjI6NkJCODNEOjY5OEUxRjFGIiwidmlzaXRvcl9pZCI6IjQ3MDg2NDE5Nzc3Mzc4MTM3OTEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 20b3d8cf9ec35ebe75f1ee804e1fab9d01b1c90f9774e83721a42ab482b2a12b |
| 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 | 7d71262819a4a68a7786924c05495bfd40a7561e4258dd129ba36f53d667639a |
| 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 | 1d904ac995eb43f93014fbdbcc9ae5878653c932 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width