Git Product home page Git Product logo

Comments (8)

daviwil avatar daviwil commented on August 22, 2024

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.

gerane avatar gerane commented on August 22, 2024

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.

gerane avatar gerane commented on August 22, 2024

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.

rkeithhill avatar rkeithhill commented on August 22, 2024

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.

rkeithhill avatar rkeithhill commented on August 22, 2024

@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.

gerane avatar gerane commented on August 22, 2024

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.

gerane avatar gerane commented on August 22, 2024

If the nuget wildcard were added though, this would clear up a large amount of the issue.

from plaster.

rkeithhill avatar rkeithhill commented on August 22, 2024

Thanks. Given your example I can see how having a wildcard would be very handy.

from plaster.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.