Added manpage and commented recent additions

This commit is contained in:
boltgolt 2018-04-13 00:54:36 +02:00
parent e15ef74439
commit 353463eebd
6 changed files with 60 additions and 60 deletions

View file

@ -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. 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
View file

@ -1,54 +1,31 @@
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.TH HOWDY SECTION "April 9, 2018" .TH HOWDY 1 "April 9, 2018" "Howdy help" "User Commands"
.\" 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)
.SH NAME .SH NAME
howdy \- Windows Hello style authentication for Ubuntu howdy \- Windows Hello style authentication for Ubuntu
.SH SYNOPSIS
.B howdy
.RI [ options ] " files" ...
.br
.B bar
.RI [ options ] " files" ...
.SH DESCRIPTION .SH DESCRIPTION
This manual page documents briefly the Howdy IR face recognition implements a PAM module to use your face as a authentication method.
.B nwsmtp .SS "Usage:"
and .IP
.B bar howdy <command> [user] [argument]
commands. .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 .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 .SH AUTHOR
nwsmtp was written by <upstream author>. Howdy was written by boltgolt. For more information visit https://github.com/Boltgolt/howdy
.PP
This manual page was written by Alexei Moisseev <alexmois@ya.ru>,
for the Debian project (and may be used by others).

1
debian/howdy.manpages vendored Normal file
View file

@ -0,0 +1 @@
debian/howdy.1

29
debian/postinst vendored
View file

@ -2,6 +2,13 @@
# Installation script to install howdy # Installation script to install howdy
# Executed after primary apt install # 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 required modules
import subprocess import subprocess
import time import time
@ -12,29 +19,34 @@ import signal
import fileinput import fileinput
import urllib.parse 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: if "configure" not in sys.argv:
sys.exit(0) sys.exit(0)
def log(text): def log(text):
"""Print a nicely formatted line to stdout""" """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): def handleStatus(status):
"""Abort if a command fails""" """Abort if a command fails"""
if (status != 0): 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) 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"): if not os.path.exists("/tmp/howdy_picked_device"):
sys.exit(0) sys.exit(0)
# Open the temporary file containing the device ID
in_file = open("/tmp/howdy_picked_device", "r") in_file = open("/tmp/howdy_picked_device", "r")
# Should be a string # Load it in, it should be a string
picked = in_file.read() picked = in_file.read()
in_file.close() in_file.close()
# Remove the temporary file
subprocess.call(["rm /tmp/howdy_picked_device"], shell=True) subprocess.call(["rm /tmp/howdy_picked_device"], shell=True)
log("Upgrading pip to the latest version") log("Upgrading pip to the latest version")
@ -44,7 +56,7 @@ handleStatus(subprocess.call(["pip3 install --upgrade pip"], shell=True))
log("Cloning dlib") 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"])) handleStatus(subprocess.call(["git", "clone", "--depth", "1", "https://github.com/davisking/dlib.git", "/tmp/dlib_clone"]))
log("Building dlib") log("Building dlib")
@ -86,10 +98,7 @@ print("Permissions set")
# Make the CLI executable as howdy # 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(["ln -s /lib/security/howdy/cli.py /usr/local/bin/howdy"], shell=True))
handleStatus(subprocess.call(["chmod +x /usr/local/bin/howdy"], shell=True)) handleStatus(subprocess.call(["chmod +x /usr/local/bin/howdy"], shell=True))
print("Installing howdy command") print("Howdy command installed")
# 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)
log("Adding howdy as PAM module") 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 # Let the user know what to do with the link
print("Installation complete.") 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
View file

@ -3,6 +3,7 @@
# Executed before primary apt install of files # Executed before primary apt install of files
def col(id): def col(id):
"""Add color escape sequences"""
if id == 1: return "\033[32m" if id == 1: return "\033[32m"
if id == 2: return "\033[33m" if id == 2: return "\033[33m"
if id == 3: return "\033[31m" if id == 3: return "\033[31m"
@ -15,10 +16,11 @@ import os
import re import re
import signal import signal
# Don't run if we're not trying to install fresh
if "install" not in sys.argv: if "install" not in sys.argv:
sys.exit(0) sys.exit(0)
# The picked video device id # The default picked video device id
picked = -1 picked = -1
print(col(1) + "Starting IR camera check...\n" + col(0)) 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: 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)) 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: with open("/tmp/howdy_picked_device", "w") as out_file:
out_file.write("0") out_file.write("0")
@ -83,6 +86,7 @@ if picked == -1:
print(col(3) + "No suitable IR camera found, aborting install." + col(0)) print(col(3) + "No suitable IR camera found, aborting install." + col(0))
sys.exit(23) 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: with open("/tmp/howdy_picked_device", "w") as out_file:
out_file.write(str(picked)) out_file.write(str(picked))

9
debian/prerm vendored
View file

@ -3,6 +3,7 @@
# Completely remove howdy from the system # Completely remove howdy from the system
def col(id): def col(id):
"""Add color escape sequences"""
if id == 1: return "\033[32m" if id == 1: return "\033[32m"
if id == 2: return "\033[33m" if id == 2: return "\033[33m"
if id == 3: return "\033[31m" if id == 3: return "\033[31m"
@ -11,6 +12,14 @@ def col(id):
# Import required modules # Import required modules
import subprocess 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 # Remove files and symlinks
try: try:
subprocess.call(["rm /usr/local/bin/howdy"], shell=True) subprocess.call(["rm /usr/local/bin/howdy"], shell=True)