#! /bin/bash
#	$Id: faxsetup.linux.in 764 2008-01-18 19:28:19Z faxguy $
#
# HylaFAX Facsimile Software
#
# Copyright (c) 1995-1996 Sam Leffler
# Copyright (c) 1995-1996 Silicon Graphics, Inc.
# HylaFAX is a trademark of Silicon Graphics
# 
# Permission to use, copy, modify, distribute, and sell this software and 
# its documentation for any purpose is hereby granted without fee, provided
# that (i) the above copyright notices and this permission notice appear in
# all copies of the software and related documentation, and (ii) the names of
# Sam Leffler and Silicon Graphics may not be used in any advertising or
# publicity relating to the software without the specific, prior written
# permission of Sam Leffler and Silicon Graphics.
# 
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
# 
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
# OF THIS SOFTWARE.
#

#
# Linux-specific definitions for faxsetup.
#

addPasswd()
{
    # We're probably creating a user with the same uid as another,
    # so we need to use 'useradd -o' if available.  Also, some
    # useradds copy a number of "dot" files when creating the home
    # directory, so if available, '-M' prevents that, and if it is
    # an invalid option, then simply not using '-m' will usually 
    # do the trick.  We have to watch the exit status of this script,
    # so, the last command run should have somthing to do with the valid
    # creation of the "fax" user.

    if [ -z "`useradd 2>&1 | grep -- -o`" ]; then
        # useradd does *not* support the -o option
        useradd -c 'Facsimile Agent' -d $4 -s /bin/false $1;
        usermod -u $2 -o -g $3 $1;
    elif [ -z "`useradd -M 2>&1 | grep -E 'invalid|illegal'`" ]; then
        # useradd supports the -M option
        useradd -M -c 'Facsimile Agent' -d $4 -u $2 -o -g $3 -s /bin/false $1;
    else
        # useradd does *not* support the -M option
        useradd -c 'Facsimile Agent' -d $4 -u $2 -o -g $3 -s /bin/false $1;
    fi
}
deletePasswd()
{
    userdel -r $1
}
lockPasswd()
{
    return 0
}
modifyPasswd()
{
    usermod -d $4 -m -u $2 -o -g $3 $1
# NB: we must do it twice to keep Linux happy if the
#     home directory allready exists
    usermod -d $4 -m -u $2 -o -g $3 $1
}