Comments (8)
I think this would be pretty helpful but I haven't thought through the impact it might have yet. What do you think Keith?
from plaster.
You could add an ignore file for anything used for processing or with Plaster. Then for the template files that get edited for variables, just go to the path of the file and edit it instead of copy it. Then for the files with conditions, remove based on condition instead of add based on condition. Example:
Options: A, B, C
Current: User selects B, Plaster adds B.
Proposed: User Selects B, Plaster Removed A and C.
from plaster.
I am just thinking that if Plaster is meant to support any sort of project, it's current implementation is not really feasible for something with say, 50, 100, 1000 or however many individual files. You would have to manually add each file into the manifest to be copied over.
from plaster.
RE root folder - I was thinking that we might follow NuGet's lead on this and put content under a content
folder. This also helps make it obvious that plasterManifest.xml is special and not a content file.
Likewise, I think we could support a wildcard syntax. NuGet uses:
<file src="tools\**" />
I can see how that would be useful.
from plaster.
@gerane Can you give me a user scenario for scaffolding that would require 1000 files? I want to make sure I understand those scenarios.
from plaster.
Something like that sounds good.
I don't really have an example atm of say 1000. However, my very first I decided to try out was for PSAppDeployToolkit. I am constantly adding more files to this since I am sort of building a module of helper functions for it. I think currently its around 35-40 files. The manifest in this link doesn't have all of them because I decided to stop and come make an issue first. You can at least start to get an idea of how cumbersome it could get to create or maintain a template that has a large number of files or changes regularly.
https://gist.github.com/gerane/38ac0bcb14533a17eeaf892ee0612046
If I had to think of something that might use 1000 files, it might be more of a project that might include other helper modules inside of it. These Helper Modules might be static and contain hundreds of files, but you would still need to add every single file in the Help Modules by hand.
We also have to think about what potential projects this might be used for. Modules, DSC Resources, Pester and things like that might be your first thoughts, but a tool like this can be used for so much more than just that. Since PowerShell is such a Operations type language, I think we should try to look at Plaster in the same way we should look at Pester. There is the standard use case like Unit Tests, but then there are those other awesome use cases that people don't even realize like Operational Validation tests.
from plaster.
If the nuget wildcard were added though, this would clear up a large amount of the issue.
from plaster.
Thanks. Given your example I can see how having a wildcard would be very handy.
from plaster.
Related Issues (20)
- Paths shouldn't be validated when the condition evaluates to false HOT 5
- set up release build HOT 9
- Multi Choice Allows for a Duplicate Shortcut Key HOT 2
- Get-PlasterTemplate -IncludeInstalledModules return templates from all installed module versions HOT 2
- Completely suppress output of invoke-plaster HOT 7
- Copy folder with content HOT 2
- Test-ModuleManifest fails in Core HOT 1
- Is anyone maintaining this? HOT 2
- %homedrive% and %homepath% vs %userprofile% HOT 1
- Example 2 of Invoke-Pester doesn't work HOT 2
- Absolute Paths for Templates? HOT 2
- Transfer of Ownership HOT 16
- Module Manifest Template Tests Don't Work with Pester 5 HOT 3
- How does one make a module "Plaster Aware" HOT 2
- Plaster - Past, Present, and Future HOT 2
- Change Github references to PowerShell.org HOT 3
- Pester tests throw error when using version 4 or higher HOT 3
- Folder Creation - Skipped Folders HOT 2
- Validating input from Plaster parameters HOT 1
- Error in implementation of SupportsShouldProcess
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from plaster.