Skip to content
/ ps-sh-helpers Public template

Lib template for creating PowerShell and Bash helpers.

Notifications You must be signed in to change notification settings

alanlivio/ps-sh-helpers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ps-sh-helpers

ps-sh-helpers is a template for creating your library PowerShell and Bash helpers. It is very useful for Windows users that wants take the best of WSL Bash and integrate it with PowerShell.

ps-sh-helpers organize helpers in OS-dependent from os/<os>.* files and loads program-dependent from programs/<program>.* files. It is initialized at .bashrc by loading init.sh or at PowerShell_profile.ps1 by loading init.ps1 (see diagram below).

%%{init: {'theme':'dark'}}%%
flowchart LR
    bashrc[".bashrc"]
    ps-init["init.ps1"]
    sh-init["init.sh"]
    program-dependent["
        programs/[program].bash
        ...
    "]
    OS-dependent["
        os/win.bash
        os/ubu.bash
        ...
    "]
    
    bashrc --> |"loads"| sh-init
    sh-init --> |"loads if program exists"| program-dependent
    sh-init --> |"loads if running at OS"| OS-dependent
    sh-init --> |"bash alias to each function at"| ps-init
Loading
%%{init: {'theme':'dark'}}%%
flowchart LR
    psprofile["profile.ps1"]
    ps-init["init.ps1"]
    sh-init["init.sh"]
    program-dependent["
        programs/[program].ps1
        ...
    "]
    OS-dependent["
        os/win.ps1
        os/ubu.ps1
        ...
    "]

    psprofile--> |"loads"| ps-init
    ps-init --> |"loads if program exists"| program-dependent
    ps-init --> |"loads if running at OS"| OS-dependent
    ps-init --> |"bash alias to each function at"| sh-init
Loading

How to install

You can use the Bash commands below to fetch, install, and setup ps-sh-helpers to be loaded in your .bashrc:

git clone https://github.com/alanlivio/ps-sh-helpers ~/.ps1-sh-helpers
echo "source ~/.ps-sh-helpers/init.sh" >> ~/.bashrc

You can use the PowerShell commands below to fetch, install, and setup ps-sh-helpers to be loaded in your profile.ps1:

git clone https://github.com/alanlivio/ps-sh-helpers ${env:userprofile}\.ps1-sh-helpers
$contentAdd = '. "${env:userprofile}\.ps-sh-helpers\init.ps1""'
# to setup WindowsPowerShell
Set-Content "${env:userprofile}/Documents/WindowsPowerShell/Microsoft.PowerShell_profile.ps1" $contentAdd 

Pay attention that to setup a PowerShell >= 6, the last line should be: Set-Content "${env:userprofile}/Documents/PowerShell/profile.ps1" $contentAdd

References

This project takes inspiration from: