-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathenrollment.sh
executable file
·114 lines (96 loc) · 3.79 KB
/
enrollment.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/bin/bash
################################################################################
# (c) Patrick Geselbracht <[email protected]>
################################################################################
################################################################################
# Display usage of the shell script
################################################################################
display_usage() {
echo
echo "Invalid number of arguments on command line"
echo "Usage: enrollment.sh <file> <ID>"
echo
echo "file - WSQ file containing the fingerprint of the user to be enrolled"
echo "ID - The ID of the user to be enrolled"
echo
}
################################################################################
# The minimum requirement for the usage of the script are two parameters:
# a wsq fil and a user to be enrolled
# The script therefore exits showing the usage of the script if the parameter
# count is less than two
################################################################################
if (( $# < 2 ))
then
display_usage
exit 1
fi
if [[ "$(whoami)" == "root" ]];
then
echo "Unlike 42, sudo is not the Answer to the Ultimate Question of Life, the Universe, and Everything!"
exit 1
fi
# Call the script that puts the relevant variables into memory
source ./variables.sh
################################################################################
# Returns the current time formated as YYYY-MM-DD_hh:mm:ss
################################################################################
timestamp() {
date +"%F_%T"
}
################################################################################
# Show specified error message and exit the application w/ specified exit code
# Option vars referenced in this function hold the function's parameter values
# and should not be confused with the shell script's parameter variables.
# Option 1: Error message
# Option 2: Exit code
# Function writes the error message to stdout and to the ERRORLOG file
################################################################################
die() {
echo `timestamp` "-- Error: $1" 2>&1 | tee -a $ERRORLOG
exit $2
}
################################################################################
# Deletes the temporary directory
################################################################################
delete_tmp() {
`rm -r "$TMPDIR"`
}
################################################################################
# PARAMETERS
################################################################################
WSQ_INPUT=$1
USER_ID=$2
PROVIDED_FINGERPRINT=$3
APPLY_SEGMENTATION=$4
USER_LOGFILE="$LOGDIR/log_$USER_ID"
################################################################################
# MAIN
################################################################################
if [[ ! -f "$NBIS_DIR/nfiq" ]];
then
die "NFIQ tool could not be found. Did you remember to add the directory you stored the NBIS tools in to 'variables.sh'?" 10
fi
NFIQ_OUTPUT=`$NBIS_DIR/nfiq "$WSQ_INPUT"`
# Check if NFIQ is <= 3; if var is not assigned: set it to OVER NINE-THOUSAND
if [[ "${NFIQ_OUTPUT:-9001}" -le 3 ]];
then
echo $NFIQ_OUTPUT > $USER_LOGFILE
USERFILE="$SCRIPT_DIR/user_$USER_ID.xyt"
if [[ -e $USERFILE ]]; then
die "User with ID: $USER_ID already exists" 7
else
MINDTCT_OUTPUT=`$NBIS_DIR/mindtct "$WSQ_INPUT" "$TMPDIR/user_$USER_ID"`
echo "$MINDTCT_OUTPUT"
fi
# if NFIQ is higher than 3
else
echo $NFIQ_OUTPUT > $USER_LOGFILE
die "Bad fingerprint quality -- value is ${NFIQ_OUTPUT:-9001}, should be <= 3" 2
fi
#move minutae file to SCRIPT DIR
mv $TMPDIR/user_$USER_ID.xyt $USERFILE
# Delete tmp dir only if the script didn’t exit early on---files might be needed
delete_tmp
echo "Enrollment successful. User $USER_ID has been created."
exit 0