GitBucket
4.20.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull requests
Labels
Priorities
Milestones
Wiki
Forks
Jonathan
/
pmf-suspend
Browse code
Added so that you can run a simulation of the program and updated help.
master
1 parent
d15a9d3
commit
27b7f66bb9ac2e51de4d629a3bc7ba5821e7f365
Jonathan Ström
authored
on 11 Mar 2017
Patch
Showing
1 changed file
pmf-suspend
Ignore Space
Show notes
View
pmf-suspend
#!/bin/bash # Run a simulation of the program. Does not lock nor suspend the system. SIMULATION=0 # Set params used PARAM_1=$1 PARAM_2=$2 PARAM_3=$3 PARAM_4=$4 # Set user COMPUTER_USER="stina" # Help if [[ $1 == "help" || $1 == "--help" ]]; then echo -e "Usage: pmf-suspend [--help|--simulation|[0-9|0-9|0-9]] pmf-suspend Suspend system pmf-suspend help|--help Show this message pmf-suspend --simulation Run a simulation of the program, execute nothing. pmf-suspend 1 2 3 Timer will be set to 1s, 2m, 3h pmf-suspend 0 30 Timer will be set to 30 mintues Info: Author: Livila Version: 1.0 Use this program when you want to suspend your computer with a timer. As pm-suspend itself does not lock the screen on the latest versions. This will do that automatically when the timer is finished. The command pmf-suspend stands for Power Manager (Fix) suspend. In order to suspend the system this program must be run as root. "; exit 1 elif [[ $1 == "simulation" || $1 == "--simulation" ]]; then echo "Running a simulation..."; PARAM_1=$PARAM_2 PARAM_2=$PARAM_3 PARAM_3=$PARAM_4 SIMULATION=1 fi # Check if the user is root. if [[ $EUID -ne 0 ]]; then # Check if the user is running a simulation if [ $SIMULATION == 1 ]; then echo "Usually this script must be run as root, but this is a simulation." 1>&2 else echo "This script must be run as root, use \"sudo pmf-suspend\" instead." 1>&2 exit 1 fi fi # Calulcate time if [ "$PARAM_3" != "" ]; then hour=$(($PARAM_3 * 3600)); fi if [ "$PARAM_2" != "" ]; then minute=$(($PARAM_2 * 60)); fi if [ "$PARAM_1" != "" ]; then second=$(($PARAM_1)); fi # Print time and count down suspendText="Suspending computer in: " runCountdown() { total=$(( $hour + $minute + $second )) while [ $total -gt 0 ] do sleep 1 & printf "\r$suspendText%02d:%02d:%02d" $((total/3600)) $(( (total/60)%60)) $((total%60)) total=$(( $total - 1 )) wait done # Setting timer to 00:00:00 when it is finished printf "\r$suspendText%02d:%02d:%02d" 00 00 00 echo } if [ $PARAM_1 != "" ]; then runCountdown fi # If the user is running a simulation then don't execute any scripts. if [ $SIMULATION == 1 ]; then exit 1 fi # Execute scripts # Lock screen sudo -u $COMPUTER_USER gnome-screensaver-command --lock # Suspend computer sudo pm-suspend
#!/bin/bash # Help if [[ $1 == "help" || $1 == "--help" ]]; then echo -e "Usage: pmf-suspend Suspend and lock the screen directly pmf-suspend [help|--help] Show this message pmf-suspend 1 2 3 Timer will be set to 1s, 2m, 3h pmf-suspend 0 30 Timer will be set to 30 mintues Info: Author: Livila Version: 1.0 Use this program when you want to suspend your computer with a timer. As pm-suspend itself does not lock the screen on the latest versions. This will do that automatically when the timer is finished. The command pmf-suspend stands for Power Manager (Fix) suspend. In order to suspend the system this program must be run as root. "; exit 1 fi # Check if the user is using sudo. if [[ $EUID -ne 0 ]]; then echo "This script must be run as root, use \"sudo pmf-suspend\" instead." 1>&2 exit 1 fi # Calulcate time if [ "$3" != "" ]; then hour=$(($3 * 3600)); fi if [ "$2" != "" ]; then minute=$(($2 * 60)); fi if [ "$1" != "" ]; then second=$(($1)); fi # Print time and count down suspendText="Suspending computer in: " runCountdown() { total=$(( $hour + $minute + $second )) while [ $total -gt 0 ] do sleep 1 & printf "\r$suspendText%02d:%02d:%02d" $((total/3600)) $(( (total/60)%60)) $((total%60)) total=$(( $total - 1 )) wait done # Setting timer to 00:00:00 when it is finished printf "\r$suspendText%02d:%02d:%02d" 00 00 00 echo } # Set user user="stina" if [ $1 != "" ]; then runCountdown fi # Execute scripts # Lock screen sudo -u $user gnome-screensaver-command --lock # Suspend computer sudo pm-suspend
Show line notes below