* sq: Customizable squeue wrapper: introduce new defaults / default
behavior on squeue.
This commit is contained in:
67
slurm/sq
Executable file
67
slurm/sq
Executable file
@@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Extended squeue wrapper
|
||||||
|
#
|
||||||
|
# Wirawan Purwanto
|
||||||
|
# Created: 20180720
|
||||||
|
|
||||||
|
shopt -s extglob
|
||||||
|
set -e
|
||||||
|
|
||||||
|
optAllUsers=0
|
||||||
|
optHasUsers=0
|
||||||
|
optHasFormat=0
|
||||||
|
optSlurmFlags=()
|
||||||
|
|
||||||
|
FORMAT_DEFAULT="%.18i %.9P %.20j %.9u %.2t %.12M %.12l %.5D %R"
|
||||||
|
|
||||||
|
function ParseArgs()
|
||||||
|
{
|
||||||
|
local i
|
||||||
|
local nopass
|
||||||
|
|
||||||
|
local args args_count arg
|
||||||
|
args=( "zeroth-arg-not-used" "$@" )
|
||||||
|
args_count=$#
|
||||||
|
for ((i = 1; i <= args_count; ++i)); do
|
||||||
|
arg="${!i}"
|
||||||
|
case "$arg" in
|
||||||
|
# This script's options
|
||||||
|
(+a)
|
||||||
|
optAllUsers=1
|
||||||
|
;;
|
||||||
|
(+*)
|
||||||
|
: # ignore
|
||||||
|
;;
|
||||||
|
(-*|*)
|
||||||
|
optSlurmFlags[ ${#optSlurmFlags[@]} ]="$arg"
|
||||||
|
case "$arg" in
|
||||||
|
(-u*|--user?(=*))
|
||||||
|
optHasUsers=1
|
||||||
|
;;
|
||||||
|
(-l|-s|--long|--steps|-o|--format?(=*))
|
||||||
|
optHasFormat=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function do_squeue()
|
||||||
|
{
|
||||||
|
# My old default is to show jobs for me only:
|
||||||
|
if ! (( optHasUsers || optAllUsers )); then
|
||||||
|
optSlurmFlags=( "${optSlurmFlags[@]}" -u "$USER" )
|
||||||
|
fi
|
||||||
|
if ! (( optHasFormat )); then
|
||||||
|
optSlurmFlags=( "${optSlurmFlags[@]}" -o "$FORMAT_DEFAULT" )
|
||||||
|
fi
|
||||||
|
squeue "${optSlurmFlags[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ParseArgs "$@"
|
||||||
|
do_squeue
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user