mirror of
https://github.com/arcan1s/queued.git
synced 2025-04-24 23:47:19 +00:00
Added add_queued
This commit is contained in:
parent
345dfd574f
commit
74a95a57e5
4
PKGBUILD
4
PKGBUILD
@ -2,7 +2,7 @@
|
|||||||
# Author: Evgeniy "arcanis" Alexeev <esalexeev@gmail.com>
|
# Author: Evgeniy "arcanis" Alexeev <esalexeev@gmail.com>
|
||||||
|
|
||||||
pkgname=queued
|
pkgname=queued
|
||||||
pkgver=1.1.0
|
pkgver=1.2.0
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Daemon for starting jobs to queue of calculations"
|
pkgdesc="Daemon for starting jobs to queue of calculations"
|
||||||
arch=('any')
|
arch=('any')
|
||||||
@ -10,7 +10,7 @@ url="https://github.com/arcan1s/queued"
|
|||||||
license=("GPLv3")
|
license=("GPLv3")
|
||||||
depends=('bash')
|
depends=('bash')
|
||||||
source=(https://github.com/arcan1s/queued/releases/download/V.${pkgver}/${pkgname}-${pkgver}-src.tar.xz)
|
source=(https://github.com/arcan1s/queued/releases/download/V.${pkgver}/${pkgname}-${pkgver}-src.tar.xz)
|
||||||
md5sums=('0832ae610567e0aed4dccea02408e5a3')
|
md5sums=('a5e1af503128283cda85ca21d08b6853')
|
||||||
backup=('etc/queued.conf')
|
backup=('etc/queued.conf')
|
||||||
|
|
||||||
package()
|
package()
|
||||||
|
@ -8,6 +8,7 @@ mkdir -p ${ARCHIVE}/usr/share/man/{man1,man5}
|
|||||||
mkdir -p ${ARCHIVE}/etc
|
mkdir -p ${ARCHIVE}/etc
|
||||||
|
|
||||||
cp sources/queued ${ARCHIVE}/usr/bin/
|
cp sources/queued ${ARCHIVE}/usr/bin/
|
||||||
|
cp sources/add_queued ${ARCHIVE}/usr/bin/
|
||||||
cp sources/queued.service ${ARCHIVE}/usr/lib/systemd/system/
|
cp sources/queued.service ${ARCHIVE}/usr/lib/systemd/system/
|
||||||
cp sources/queued.conf ${ARCHIVE}/etc/
|
cp sources/queued.conf ${ARCHIVE}/etc/
|
||||||
cp sources/*.1 ${ARCHIVE}/usr/share/man/man1/
|
cp sources/*.1 ${ARCHIVE}/usr/share/man/man1/
|
||||||
|
@ -11,11 +11,13 @@ func_error() {
|
|||||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||||
# daemon and configuration
|
# daemon and configuration
|
||||||
install -D -m755 "usr/bin/queued" "$DESTDIR/usr/bin/queued" || func_error
|
install -D -m755 "usr/bin/queued" "$DESTDIR/usr/bin/queued" || func_error
|
||||||
|
install -D -m755 "usr/bin/add_queued" "$DESTDIR/usr/bin/add_queued" || func_error
|
||||||
install -D -m644 "etc/queued.conf" "$DESTDIR/etc/queued.conf" || func_error
|
install -D -m644 "etc/queued.conf" "$DESTDIR/etc/queued.conf" || func_error
|
||||||
# service
|
# service
|
||||||
install -D -m644 "usr/lib/systemd/system/queued.service" "$DESTDIR/usr/lib/systemd/system/queued.service" || func_error
|
install -D -m644 "usr/lib/systemd/system/queued.service" "$DESTDIR/usr/lib/systemd/system/queued.service" || func_error
|
||||||
# man pages
|
# man pages
|
||||||
install -D -m644 "usr/share/man/man1/queued.1" "$DESTDIR/usr/share/man/man1/queued.1" || func_error
|
install -D -m644 "usr/share/man/man1/queued.1" "$DESTDIR/usr/share/man/man1/queued.1" || func_error
|
||||||
|
install -D -m644 "usr/share/man/man1/add_queued.1" "$DESTDIR/usr/share/man/man1/add_queued.1" || func_error
|
||||||
install -D -m644 "usr/share/man/man5/queued.conf.5" "$DESTDIR/usr/share/man/man5/queued.conf.5" || func_error
|
install -D -m644 "usr/share/man/man5/queued.conf.5" "$DESTDIR/usr/share/man/man5/queued.conf.5" || func_error
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
Binary file not shown.
BIN
queued-1.2.0-src.tar.xz
Normal file
BIN
queued-1.2.0-src.tar.xz
Normal file
Binary file not shown.
92
sources/add_queued
Executable file
92
sources/add_queued
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# queued is a simple daemon for starting jobs to queue of calculations
|
||||||
|
# Copyright (C) 2013 Evgeniy Alekseev
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see http://www.gnu.org/licenses
|
||||||
|
# or write to the Free Software Foundation,Inc., 51 Franklin Street,
|
||||||
|
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
# functions
|
||||||
|
error_mes() {
|
||||||
|
case "$1" in
|
||||||
|
"config" ) echo "[EE] Configuration file is not set";;
|
||||||
|
"notfound" ) echo "[EE] File '$2' not found";;
|
||||||
|
"number" ) echo "[EE] '$2' is not a number";;
|
||||||
|
"priority" ) echo "[EE] Priority is not set";;
|
||||||
|
"unknown" ) echo "[EE] Unknown error";;
|
||||||
|
"user" ) echo "[EE] User is not set";;
|
||||||
|
esac
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
func_help() {
|
||||||
|
echo -e "Script to add job for queued"
|
||||||
|
echo -e "\nUsage: add_queued [ -c /etc/queued.conf ] [ -p NUM ] [ -u USER ] [ -h | --help ] /path/to/script"
|
||||||
|
echo -e "\nParameters:"
|
||||||
|
echo -e " -c PATH - path to configuration file. Default is '/etc/queued.conf'"
|
||||||
|
echo -e " -p NUM - job priority"
|
||||||
|
echo -e " -u USER - username"
|
||||||
|
echo -e " -h --help - show this help and exit"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
isnum() {
|
||||||
|
(t=$(( 0$1+0 ))) 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CONF_FILE="/etc/queued.conf"
|
||||||
|
# parametrs parsing
|
||||||
|
until [ -z $1 ]; do
|
||||||
|
case "$1" in
|
||||||
|
"-h" | "--help" ) func_help;;
|
||||||
|
"-c" ) [ -z "$2" ] && error_mes "config" || CONF_FILE="$2" && shift;;
|
||||||
|
"-p" ) [ -z "$2" ] && error_mes "priority" || JOB_PRIORITY="$2" && shift;;
|
||||||
|
"-u" ) [ -z "$2" ] && error_mes "user" || JOB_USER="$2" && shift;;
|
||||||
|
* ) JOB_SCRIPT="$1";;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
# default values
|
||||||
|
WORKDIR="/var/lib/queued/work"
|
||||||
|
echo "[II] Reading configuration from '$CONF_FILE'"
|
||||||
|
[ -e "$CONF_FILE" ] || error_mes "notfound" "$CONF_FILE"
|
||||||
|
for VAR in "$(cat "$CONF_FILE")"; do eval "$VAR"; done
|
||||||
|
|
||||||
|
# error check
|
||||||
|
if [ ! -d "$WORKDIR" ]; then
|
||||||
|
[ -e "$WORKDIR" ] && error_mes "file" "$WORKDIR"
|
||||||
|
echo "[II] Creating directory '$WORKDIR'"
|
||||||
|
mkdir -m777 -p "$WORKDIR" || error_mes "unknown"
|
||||||
|
fi
|
||||||
|
if [ ! -z "$JOB_PRIORITY" ]; then
|
||||||
|
isnum "$JOB_PRIORITY" || error_mes "number" "$JOB_PRIORITY"
|
||||||
|
fi
|
||||||
|
[ -z "$JOB_SCRIPT" ] && error_mes "notfound" "$JOB_SCRIPT"
|
||||||
|
[ -e "$JOB_SCRIPT" ] || error_mes "notfound" "$JOB_SCRIPT"
|
||||||
|
|
||||||
|
|
||||||
|
# work block
|
||||||
|
if [ -e "$WORKDIR/$(basename "$JOB_SCRIPT")" ]; then
|
||||||
|
echo "[WW] File '$WORKDIR/$(basename "$JOB_SCRIPT")' already exists. Creating backup"
|
||||||
|
mv "$WORKDIR/$(basename "$JOB_SCRIPT")" "$WORKDIR/$(basename "$JOB_SCRIPT")-$(date +%Y%m%d-%N)" || error_mes "unknown"
|
||||||
|
fi
|
||||||
|
echo "[II] Copying '$JOB_SCRIPT' to '$WORKDIR'"
|
||||||
|
cp --archive "$JOB_SCRIPT" "$WORKDIR" || error_mes "unknown"
|
||||||
|
if [ ! -z "$JOB_PRIORITY" ]; then
|
||||||
|
echo "$JOB_PRIORITY" > "$WORKDIR/$(basename "$JOB_SCRIPT").pr" || error_mes "unknown"
|
||||||
|
fi
|
||||||
|
if [ ! -z "$JOB_USER" ]; then
|
||||||
|
echo "$JOB_USER" > "$WORKDIR/$(basename "$JOB_SCRIPT").user" || error_mes "unknown"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
32
sources/add_queued.1
Normal file
32
sources/add_queued.1
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
.TH add_queued 1 "December 24, 2013" "version 1.2.0" "USER COMMANDS"
|
||||||
|
.SH NAME
|
||||||
|
add_queued
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B add_queued
|
||||||
|
[ -c /etc/queued.conf ] [ -p NUM ] [ -u USER ] [ -h | --help ] /path/to/script
|
||||||
|
.SH DESCRIPTION
|
||||||
|
.B add_queued
|
||||||
|
is a script to add job for
|
||||||
|
.BR queued (1)
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
/path/to/script
|
||||||
|
Path to the job script
|
||||||
|
.TP
|
||||||
|
-c /etc/queued.conf
|
||||||
|
Full path to configuration file. Default is
|
||||||
|
.B /etc/queued.conf.
|
||||||
|
.TP
|
||||||
|
-p NUM
|
||||||
|
priority of the job
|
||||||
|
.TP
|
||||||
|
-u USER
|
||||||
|
username for the job running
|
||||||
|
.TP
|
||||||
|
-h, --help
|
||||||
|
Show help and exit.
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR queued (1)
|
||||||
|
.BR queued.conf (5)
|
||||||
|
.SH AUTHOR
|
||||||
|
Evgeniy Alexeev aka arcanis <\fIesalexeev@gmail.com\fR>
|
@ -22,9 +22,9 @@
|
|||||||
error_mes() {
|
error_mes() {
|
||||||
case "$1" in
|
case "$1" in
|
||||||
"config" ) echo "[EE] Configuration file is not set";;
|
"config" ) echo "[EE] Configuration file is not set";;
|
||||||
"file" ) echo "[EE]: '$2' is a file";;
|
"file" ) echo "[EE] '$2' is a file";;
|
||||||
"flag" ) echo "[EE] Unknown flag";;
|
"flag" ) echo "[EE] Unknown flag";;
|
||||||
"number" ) echo "[EE]: '$2' is not a number";;
|
"number" ) echo "[EE] '$2' is not a number";;
|
||||||
"unknown" ) echo "[EE] Unknown error";;
|
"unknown" ) echo "[EE] Unknown error";;
|
||||||
esac
|
esac
|
||||||
exit 1
|
exit 1
|
||||||
@ -41,7 +41,7 @@ func_help() {
|
|||||||
func_ver() {
|
func_ver() {
|
||||||
echo -e " queued "
|
echo -e " queued "
|
||||||
echo -e "Simple daemon for starting jobs to queue of calculations"
|
echo -e "Simple daemon for starting jobs to queue of calculations"
|
||||||
echo -e "Version : 1.1.0 License : GPLv3"
|
echo -e "Version : 1.2.0 License : GPLv3"
|
||||||
echo -e "Author : Evgeniy Alexeev aka arcanis"
|
echo -e "Author : Evgeniy Alexeev aka arcanis"
|
||||||
echo -e "E-mail : esalexeev (at) gmail.com"
|
echo -e "E-mail : esalexeev (at) gmail.com"
|
||||||
exit 0
|
exit 0
|
||||||
@ -74,6 +74,7 @@ SLEEPTIME=5
|
|||||||
STARTASUSER="root"
|
STARTASUSER="root"
|
||||||
WORKDIR="/var/lib/queued/work"
|
WORKDIR="/var/lib/queued/work"
|
||||||
echo "[II] Reading configuration from '$CONF_FILE'"
|
echo "[II] Reading configuration from '$CONF_FILE'"
|
||||||
|
[ -e "$CONF_FILE" ] || error_mes "config"
|
||||||
for VAR in "$(cat "$CONF_FILE")"; do eval "$VAR"; done
|
for VAR in "$(cat "$CONF_FILE")"; do eval "$VAR"; done
|
||||||
|
|
||||||
|
|
||||||
@ -81,19 +82,19 @@ for VAR in "$(cat "$CONF_FILE")"; do eval "$VAR"; done
|
|||||||
# creating directories if doesn't exist
|
# creating directories if doesn't exist
|
||||||
if [ ! -d "$JOBDIR/done" ]; then
|
if [ ! -d "$JOBDIR/done" ]; then
|
||||||
[ -e "$JOBDIR/done" ] && error_mes "file" "$JOBDIR/done"
|
[ -e "$JOBDIR/done" ] && error_mes "file" "$JOBDIR/done"
|
||||||
echo "[II]: Create directory '$JOBDIR/done'"
|
echo "[II] Creating directory '$JOBDIR/done'"
|
||||||
mkdir -m777 -p "$JOBDIR/done" || error_mes "unknown"
|
mkdir -m777 -p "$JOBDIR/done" || error_mes "unknown"
|
||||||
fi
|
fi
|
||||||
if [ ! -d "$WORKDIR" ]; then
|
if [ ! -d "$WORKDIR" ]; then
|
||||||
[ -e "$WORKDIR" ] && error_mes "file" "$WORKDIR"
|
[ -e "$WORKDIR" ] && error_mes "file" "$WORKDIR"
|
||||||
echo "[II]: Create directory '$WORKDIR'"
|
echo "[II] Creating directory '$WORKDIR'"
|
||||||
mkdir -m777 -p "$WORKDIR" || error_mes "unknown"
|
mkdir -m777 -p "$WORKDIR" || error_mes "unknown"
|
||||||
fi
|
fi
|
||||||
if [ ! -d "$(dirname "$QUEUEFILE")" ]; then
|
if [ ! -d "$(dirname "$QUEUEFILE")" ]; then
|
||||||
[ -e "$(dirname "$QUEUEFILE")" ] && error_mes "file" "$(dirname "$QUEUEFILE")"
|
[ -e "$(dirname "$QUEUEFILE")" ] && error_mes "file" "$(dirname "$QUEUEFILE")"
|
||||||
echo "[II]: Create directory '$(dirname "$QUEUEFILE")'"
|
echo "[II] Creating directory '$(dirname "$QUEUEFILE")'"
|
||||||
mkdir -m777 -p "$(dirname "$QUEUEFILE")" || error_mes "unknown"
|
mkdir -m777 -p "$(dirname "$QUEUEFILE")" || error_mes "unknown"
|
||||||
echo "[II]: Create file '$QUEUEFILE'"
|
echo "[II] Creating file '$QUEUEFILE'"
|
||||||
touch "$QUEUEFILE" || error_mes "unknown"
|
touch "$QUEUEFILE" || error_mes "unknown"
|
||||||
chmod 777 "$QUEUEFILE"
|
chmod 777 "$QUEUEFILE"
|
||||||
fi
|
fi
|
||||||
@ -112,7 +113,7 @@ cd /
|
|||||||
(
|
(
|
||||||
while true; do
|
while true; do
|
||||||
# check files
|
# check files
|
||||||
echo "[II] Check new files"
|
echo "[II] Checking new files"
|
||||||
for FILE in $(ls "$WORKDIR/"); do
|
for FILE in $(ls "$WORKDIR/"); do
|
||||||
[ -d "$WORKDIR/$FILE" ] && continue
|
[ -d "$WORKDIR/$FILE" ] && continue
|
||||||
FILE_EXT="${FILE##*.}"
|
FILE_EXT="${FILE##*.}"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH queued 1 "December 24, 2013" "version 1.1.0" "USER COMMANDS"
|
.TH queued 1 "December 24, 2013" "version 1.2.0" "USER COMMANDS"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
queued - daemon for starting jobs to queue of calculations
|
queued - daemon for starting jobs to queue of calculations
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@ -10,7 +10,8 @@ is a simple daemon written on BASH for starting jobs to queue of calculations in
|
|||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.TP
|
.TP
|
||||||
-c /etc/queued.conf
|
-c /etc/queued.conf
|
||||||
Full path to configuration file. Default is '/etc/queued.conf'.
|
Full path to configuration file. Default is
|
||||||
|
.B /etc/queued.conf.
|
||||||
.TP
|
.TP
|
||||||
-h, --help
|
-h, --help
|
||||||
Show help and exit.
|
Show help and exit.
|
||||||
@ -71,6 +72,7 @@ to determine errors:
|
|||||||
[EE] - error
|
[EE] - error
|
||||||
.fi
|
.fi
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
|
.BR add_queued (1)
|
||||||
.BR queued.conf (5)
|
.BR queued.conf (5)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
Evgeniy Alexeev aka arcanis <\fIesalexeev@gmail.com\fR>
|
Evgeniy Alexeev aka arcanis <\fIesalexeev@gmail.com\fR>
|
||||||
|
Loading…
Reference in New Issue
Block a user