blog logo PowerRails

PowerRails logo

Recently I published a new module (PowerRails) on GitHub and the PowerShell gallery.
The problem that this solves is creating your folder structure for PowerShell projects. You shouldn't waste your time creating it. Use this module to
get a head start and add to your new structure as needed.

PowerRails in action

PowerRails will also helps you to become a better developer.

How?

It includes the following helpers to keep you on track 🚆 (pun intended).

  • Script Analyzer is a set of rules based on guidance from the PowerShell team. By default we enforce these rules.

  • Pester is a framework for running unit tests to execute and validate PowerShell commands. You should test your code. Pester helps you with that. Sample tests included.

  • PSake is a build automation tool written in PowerShell. Builds glue everything together. Analyze your script, run your unit testing and deploy!

  • PSDeploy is a quick and dirty module that simplifies deployments. If everything checks out, deploy our script to where ever you'd like.


Using PowerRails

There is only 1 cmdlet to learn. New-PowerRailsItem
PowerRails is semi-opinioned in the tabs vs spaces discussion. We prefer spaces but I've included
a switch to use tabs if you prefer.

Download & import module

PS> Install-Module -Name PowerRails  
PS> Import-Module -Name PowerRails  

Create a new script

PS> New-PowerRailsItem -name 'GitHubScrapper' -type 'script' -path '.'  

Create a new module (type is module by default)

PS> New-PowerRailsItem -name 'MakeMyLifeEasier' -path 'c:\scripts\'  

Learn more

PS> Get-Help New-PowerRailsItem  

Build Operations

  • Test the script via Pester and Script Analyzer
PS> .\build.ps1  
  • Test the script with Pester only
PS>.\build.ps1 -Task Test  
  • Test the script with Script Analyzer only
PS> .\build.ps1 -Task Analyze  
  • Deploy the script via PSDeploy (runs all tests)
PS> .\build.ps1 -Task Deploy  

This module was inspired by Dev Black Ops
Great read. Highly recommended.

Big thanks to FreePik for the logo.

Don't forget to star this project if you like it!