You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.1 KiB
68 lines
1.1 KiB
6 years ago
|
#!/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
|
||
|
|
||
|
|