PSmac.psm1
|
$script:ModuleRoot = $PSScriptRoot function Empty-MacOSTrash { # Empty the Trash on macOS per https://superuser.com/questions/1877663/how-can-i-empty-the-trash-from-the-macos-terminal osascript -e 'try' -e 'tell application "Finder" to empty' -e 'end try' } function Restart-MacOSApp { param( [Parameter(Mandatory, Position = 0)] [ValidateScript( { $_ -in (Get-Process).Name }, ErrorMessage = 'Please specify the name of a subdirectory in the current directory.' )] [ArgumentCompleter( { param($cmd, $param, $wordToComplete) # This is the duplicated part of the code in the [ValidateScipt] attribute. [array] $validValues = (Get-Process).Name $validValues -like "$wordToComplete*" } )] [String]$AppName ) Get-Process $AppName | Stop-Process Start-Sleep -Seconds 1 open -a "$AppName" } function Stop-MacOSApp { param( [Parameter(Mandatory, Position = 0)] [ValidateScript( { $_ -in (Get-Process).Name }, ErrorMessage = 'Please specify the name of a subdirectory in the current directory.' )] [ArgumentCompleter( { param($cmd, $param, $wordToComplete) # This is the duplicated part of the code in the [ValidateScipt] attribute. [array] $validValues = (Get-Process).Name $validValues -like "$wordToComplete*" } )] [String]$AppName ) Get-Process $AppName | Stop-Process } # Commands run on module import go here # E.g. Argument Completers could be placed here # Module-wide variables go here # For example if you want to cache some data, have some module-wide config settings, etc. ... those could go here # Example: # $script:config = @{ } Export-ModuleMember -Function 'Empty-MacOSTrash','Restart-MacOSApp','Stop-MacOSApp' |