mirror of
https://github.com/boltgolt/howdy.git
synced 2024-09-12 09:41:18 +02:00
Added manpage and commented recent additions
This commit is contained in:
parent
e15ef74439
commit
353463eebd
6 changed files with 60 additions and 60 deletions
|
@ -1,4 +1,4 @@
|
|||
# Howdy for Ubuntu [![](https://travis-ci.org/Boltgolt/howdy.svg?branch=dev)](https://travis-ci.org/Boltgolt/howdy) ![](https://img.shields.io/github/release/Boltgolt/howdy.svg) [![](https://img.shields.io/github/issues-raw/Boltgolt/howdy/enhancement.svg?label=feature requests)](https://github.com/Boltgolt/howdy/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
||||
# Howdy for Ubuntu [![](https://travis-ci.org/Boltgolt/howdy.svg?branch=dev)](https://travis-ci.org/Boltgolt/howdy) ![](https://img.shields.io/github/release/Boltgolt/howdy.svg) [![](https://img.shields.io/github/issues-raw/Boltgolt/howdy/enhancement.svg?label=feature+requests)](https://github.com/Boltgolt/howdy/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
||||
|
||||
Windows Hello™ style authentication for Ubuntu. Use your built-in IR emitters and camera in combination with face recognition to prove who you are.
|
||||
|
||||
|
|
73
debian/howdy.1
vendored
73
debian/howdy.1
vendored
|
@ -1,54 +1,31 @@
|
|||
.\" Please adjust this date whenever revising the manpage.
|
||||
.TH HOWDY SECTION "April 9, 2018"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.TH HOWDY 1 "April 9, 2018" "Howdy help" "User Commands"
|
||||
.SH NAME
|
||||
howdy \- Windows Hello style authentication for Ubuntu
|
||||
.SH SYNOPSIS
|
||||
.B howdy
|
||||
.RI [ options ] " files" ...
|
||||
.br
|
||||
.B bar
|
||||
.RI [ options ] " files" ...
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.B nwsmtp
|
||||
and
|
||||
.B bar
|
||||
commands.
|
||||
Howdy IR face recognition implements a PAM module to use your face as a authentication method.
|
||||
.SS "Usage:"
|
||||
.IP
|
||||
howdy <command> [user] [argument]
|
||||
.SS "Commands:"
|
||||
.TP
|
||||
help
|
||||
Show this help page
|
||||
.TP
|
||||
list
|
||||
List all saved face models for the current user
|
||||
.TP
|
||||
add
|
||||
Add a new face model for the current user
|
||||
.TP
|
||||
remove
|
||||
Remove a specific model
|
||||
.TP
|
||||
clear
|
||||
Remove all face models for the current user
|
||||
.TP
|
||||
test
|
||||
Test the camera and recognition methods
|
||||
.PP
|
||||
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
|
||||
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
|
||||
.\" respectively.
|
||||
\fBnwsmtp\fP is a program that...
|
||||
.SH OPTIONS
|
||||
These programs follow the usual GNU command line syntax, with long
|
||||
options starting with two dashes (`-').
|
||||
A summary of options is included below.
|
||||
For a complete description, see the Info files.
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
Show summary of options.
|
||||
.TP
|
||||
.B \-v, \-\-version
|
||||
Show version of program.
|
||||
.SH SEE ALSO
|
||||
.BR bar (1),
|
||||
.BR baz (1).
|
||||
.br
|
||||
The programs are documented fully by
|
||||
.IR "The Rise and Fall of a Fooish Bar" ,
|
||||
available via the Info system.
|
||||
.SH AUTHOR
|
||||
nwsmtp was written by <upstream author>.
|
||||
.PP
|
||||
This manual page was written by Alexei Moisseev <alexmois@ya.ru>,
|
||||
for the Debian project (and may be used by others).
|
||||
Howdy was written by boltgolt. For more information visit https://github.com/Boltgolt/howdy
|
||||
|
|
1
debian/howdy.manpages
vendored
Normal file
1
debian/howdy.manpages
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
debian/howdy.1
|
29
debian/postinst
vendored
29
debian/postinst
vendored
|
@ -2,6 +2,13 @@
|
|||
# Installation script to install howdy
|
||||
# Executed after primary apt install
|
||||
|
||||
def col(id):
|
||||
"""Add color escape sequences"""
|
||||
if id == 1: return "\033[32m"
|
||||
if id == 2: return "\033[33m"
|
||||
if id == 3: return "\033[31m"
|
||||
return "\033[0m"
|
||||
|
||||
# Import required modules
|
||||
import subprocess
|
||||
import time
|
||||
|
@ -12,29 +19,34 @@ import signal
|
|||
import fileinput
|
||||
import urllib.parse
|
||||
|
||||
# Don't run unless we need to configure the install
|
||||
# Will also happen on upgrade but we will catch that later on
|
||||
if "configure" not in sys.argv:
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def log(text):
|
||||
"""Print a nicely formatted line to stdout"""
|
||||
print("\n>>> \033[32m" + text + "\033[0m\n")
|
||||
print("\n>>> " + col(1) + text + col(0)"\n")
|
||||
|
||||
def handleStatus(status):
|
||||
"""Abort if a command fails"""
|
||||
if (status != 0):
|
||||
print("\033[31mError while running last command\033[0m")
|
||||
print(col(3) + "Error while running last command" + col(0))
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# We're not in fresh configuration mode, so exit
|
||||
# We're not in fresh configuration mode (probably an upgrade), so exit
|
||||
if not os.path.exists("/tmp/howdy_picked_device"):
|
||||
sys.exit(0)
|
||||
|
||||
# Open the temporary file containing the device ID
|
||||
in_file = open("/tmp/howdy_picked_device", "r")
|
||||
# Should be a string
|
||||
# Load it in, it should be a string
|
||||
picked = in_file.read()
|
||||
in_file.close()
|
||||
|
||||
# Remove the temporary file
|
||||
subprocess.call(["rm /tmp/howdy_picked_device"], shell=True)
|
||||
|
||||
log("Upgrading pip to the latest version")
|
||||
|
@ -44,7 +56,7 @@ handleStatus(subprocess.call(["pip3 install --upgrade pip"], shell=True))
|
|||
|
||||
log("Cloning dlib")
|
||||
|
||||
# Clone the git to /tmp
|
||||
# Clone the dlib git to /tmp, but only the last commit
|
||||
handleStatus(subprocess.call(["git", "clone", "--depth", "1", "https://github.com/davisking/dlib.git", "/tmp/dlib_clone"]))
|
||||
|
||||
log("Building dlib")
|
||||
|
@ -86,10 +98,7 @@ print("Permissions set")
|
|||
# Make the CLI executable as howdy
|
||||
handleStatus(subprocess.call(["ln -s /lib/security/howdy/cli.py /usr/local/bin/howdy"], shell=True))
|
||||
handleStatus(subprocess.call(["chmod +x /usr/local/bin/howdy"], shell=True))
|
||||
print("Installing howdy command")
|
||||
|
||||
# Install the command autocomplete, don't error on failure
|
||||
# subprocess.call(["sudo cp /lib/security/howdy/autocomplete.sh /etc/bash_completion.d/howdy"], shell=True)
|
||||
print("Howdy command installed")
|
||||
|
||||
log("Adding howdy as PAM module")
|
||||
|
||||
|
@ -192,4 +201,4 @@ if "HOWDY_NO_PROMPT" not in os.environ:
|
|||
|
||||
# Let the user know what to do with the link
|
||||
print("Installation complete.")
|
||||
print("\033[33mIf you want to help the development, please use the link above to post some camera-related information to github!\033[0m")
|
||||
print(col(2) + "If you want to help the development, please use the link above to post some camera-related information to github!" + col(0))
|
||||
|
|
6
debian/preinst
vendored
6
debian/preinst
vendored
|
@ -3,6 +3,7 @@
|
|||
# Executed before primary apt install of files
|
||||
|
||||
def col(id):
|
||||
"""Add color escape sequences"""
|
||||
if id == 1: return "\033[32m"
|
||||
if id == 2: return "\033[33m"
|
||||
if id == 3: return "\033[31m"
|
||||
|
@ -15,10 +16,11 @@ import os
|
|||
import re
|
||||
import signal
|
||||
|
||||
# Don't run if we're not trying to install fresh
|
||||
if "install" not in sys.argv:
|
||||
sys.exit(0)
|
||||
|
||||
# The picked video device id
|
||||
# The default picked video device id
|
||||
picked = -1
|
||||
|
||||
print(col(1) + "Starting IR camera check...\n" + col(0))
|
||||
|
@ -27,6 +29,7 @@ print(col(1) + "Starting IR camera check...\n" + col(0))
|
|||
if "HOWDY_NO_PROMPT" in os.environ:
|
||||
print(col(2) + "AUTOMATED INSTALL, YOU WILL NOT BE ASKED FOR INPUT AND CHECKS WILL BE SKIPPED" + col(0))
|
||||
|
||||
# Write the default device to disk and exit
|
||||
with open("/tmp/howdy_picked_device", "w") as out_file:
|
||||
out_file.write("0")
|
||||
|
||||
|
@ -83,6 +86,7 @@ if picked == -1:
|
|||
print(col(3) + "No suitable IR camera found, aborting install." + col(0))
|
||||
sys.exit(23)
|
||||
|
||||
# Write the result to disk so postinst can have a look at it
|
||||
with open("/tmp/howdy_picked_device", "w") as out_file:
|
||||
out_file.write(str(picked))
|
||||
|
||||
|
|
9
debian/prerm
vendored
9
debian/prerm
vendored
|
@ -3,6 +3,7 @@
|
|||
# Completely remove howdy from the system
|
||||
|
||||
def col(id):
|
||||
"""Add color escape sequences"""
|
||||
if id == 1: return "\033[32m"
|
||||
if id == 2: return "\033[33m"
|
||||
if id == 3: return "\033[31m"
|
||||
|
@ -11,6 +12,14 @@ def col(id):
|
|||
# Import required modules
|
||||
import subprocess
|
||||
|
||||
# Only run when we actually want to remove
|
||||
if "remove" not in sys.argv and "purge" not in sys.argv:
|
||||
sys.exit(0)
|
||||
|
||||
# Don't try running this if it's already gome
|
||||
if not os.path.exists("/lib/security/howdy/cli"):
|
||||
sys.exit(0)
|
||||
|
||||
# Remove files and symlinks
|
||||
try:
|
||||
subprocess.call(["rm /usr/local/bin/howdy"], shell=True)
|
||||
|
|
Loading…
Reference in a new issue