127 lines
3.5 KiB
C
127 lines
3.5 KiB
C
/*
|
|
* CDE - Common Desktop Environment
|
|
*
|
|
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
|
|
*
|
|
* These libraries and programs are free software; you can
|
|
* redistribute them and/or modify them under the terms of the GNU
|
|
* Lesser General Public License as published by the Free Software
|
|
* Foundation; either version 2 of the License, or (at your option)
|
|
* any later version.
|
|
*
|
|
* These libraries and programs are distributed in the hope that
|
|
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
* PURPOSE. See the GNU Lesser General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with these libraries and programs; if not, write
|
|
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
* Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
/* $XConsortium: Options.C /main/4 1996/01/25 15:55:11 rswiston $ */
|
|
/*******************************************************************
|
|
*
|
|
* (c) Copyright 1993, 1994 Hewlett-Packard Company
|
|
* (c) Copyright 1993, 1994 International Business Machines Corp.
|
|
* (c) Copyright 1993, 1994 Sun Microsystems, Inc.
|
|
* (c) Copyright 1993, 1994 Novell, Inc.
|
|
*
|
|
********************************************************************
|
|
****************************<+>*************************************/
|
|
|
|
#include "Options.h"
|
|
#include <stdlib.h>
|
|
#include <iostream>
|
|
#include <stdio.h>
|
|
#include <pwd.h>
|
|
|
|
/**************************************************************
|
|
*
|
|
* Two options are available for dtsearchpath:
|
|
*
|
|
* -v Verbose - prints the Search Path environment
|
|
* variables to standard output.
|
|
* -u Check User - determines the Search Path for a
|
|
* particular user.
|
|
* -a AutoMount - remove the autmounter's mount point
|
|
*
|
|
* -csh force Csh style environment set commands
|
|
*
|
|
* -ksh force Ksh style environment set commands
|
|
**************************************************************/
|
|
|
|
Options::Options
|
|
(
|
|
unsigned int argc,
|
|
char ** argv
|
|
) : flags(0), user_id(0), home_dir(0), automountpoint(0)
|
|
{
|
|
CString Usage ("Usage: dtsearchpath [ -v | -T | -o | -a | -csh | -ksh ] "
|
|
"[ -u <login-name> ]");
|
|
|
|
if (argc > 1) {
|
|
for (int i = 1; i < argc; i++) {
|
|
if (strcmp(argv[i],"-v") == 0)
|
|
flags |= 1;
|
|
else if (strcmp(argv[i],"-T") == 0)
|
|
flags |= 4;
|
|
else if (strcmp(argv[i],"-o") == 0)
|
|
flags |= 8;
|
|
else if (strcmp(argv[i],"-a") == 0)
|
|
flags |= 16;
|
|
else if (strcmp(argv[i],"-csh") == 0)
|
|
flags |= 32;
|
|
else if (strcmp(argv[i],"-c") == 0) // for bc with sun version
|
|
flags |= 32;
|
|
else if (strcmp(argv[i],"-ksh") == 0)
|
|
flags |= 64;
|
|
else if (strcmp(argv[i],"-u") == 0) {
|
|
flags |= 2;
|
|
if (++i < argc && argv[i][0] != '-') {
|
|
user_id = new CString(argv[i]);
|
|
struct passwd * pwd = getpwnam(user_id->data());
|
|
home_dir = new CString(pwd->pw_dir);
|
|
}
|
|
else {
|
|
fprintf(stderr, "%s\n",Usage.data());
|
|
exit(1);
|
|
}
|
|
}
|
|
else {
|
|
fprintf(stderr, "%s\n",Usage.data());
|
|
exit(1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
Options::~Options()
|
|
{
|
|
delete user_id;
|
|
delete automountpoint;
|
|
delete home_dir;
|
|
}
|
|
|
|
|
|
void Options::setUserID
|
|
(
|
|
const CString & login
|
|
)
|
|
{
|
|
user_id = new CString(login);
|
|
}
|
|
|
|
void Options::setAutoMountPoint
|
|
(
|
|
const CString & mountpoint
|
|
)
|
|
{
|
|
if (mountpoint.isNull())
|
|
automountpoint = new CString("/tmp_mnt");
|
|
else
|
|
automountpoint = new CString(mountpoint);
|
|
}
|