Skip to content

Instantly share code, notes, and snippets.

@OnesimusUnbound
Last active December 18, 2015 02:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save OnesimusUnbound/5713000 to your computer and use it in GitHub Desktop.
Save OnesimusUnbound/5713000 to your computer and use it in GitHub Desktop.
Powershell Script for Seven Minute Workout. Sends notification when the exercise or rest is done
$sound = New-Object System.Media.SoundPlayer;
function Initialize-Alert {
$sound.SoundLocation="$env:WINDIR\Media\ringout.wav";
}
function Alert-User {
$sound.Play();
}
function Instruct-User($activity, $duration) {
Alert-User
Echo "Do $activity"
Start-Sleep -Seconds $duration
}
function Run-Circuit($ExerciseDuration, $RestDuration, $CircuitRestDuration, $Exercises) {
process {
$circuitNumber = $_
$lastIndex = $Exercises.Length - 1
$firstTask = $Exercises[0]
$otherTasks = $Exercises[1..$lastIndex]
Clear-Host
Instruct-User $firstTask $ExerciseDuration
$otherTasks | % {
Instruct-User "Rest" $RestDuration
Clear-Host
Instruct-User $_ $ExerciseDuration
}
Clear-Host
Instruct-User "Rest from Circuit $circuitNumber" $CircuitRestDuration
}
}
function Main($settings) {
Initialize-Alert
Clear-Host
Instruct-User "Prepare" $settings.PreparationDuration
1..$settings.NumberOfCircuit | Run-Circuit @settings
}
Main @{
PreparationDuration = 30
ExerciseDuration = 30
RestDuration = 10
CircuitRestDuration = 30
NumberOfCircuit = 3
Exercises = @(
"Jumping jacks"
"Wall sit"
"Push-up"
"Abdominal crunch Core"
"Step-up onto chair"
"Squat"
"Triceps dip on chair"
"Plank"
"High knees/running in place"
"Lunge"
"Push-up and rotation"
"Side plank"
"Side plank"
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment