Initial revision
This commit is contained in:
parent
470b8f44f6
commit
189184991a
123
clients/ffindcmd.c
Normal file
123
clients/ffindcmd.c
Normal file
|
|
@ -0,0 +1,123 @@
|
||||||
|
/*-
|
||||||
|
* Copyright (c) 1990 The Regents of the University of California.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. All advertising materials mentioning features or use of this software
|
||||||
|
* must display the following acknowledgement:
|
||||||
|
* This product includes software developed by the University of
|
||||||
|
* California, Berkeley and its contributors.
|
||||||
|
* 4. Neither the name of the University nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
* SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*********************************************************************\
|
||||||
|
* Copyright (c) 1993 by Michael Meskes *
|
||||||
|
* (meskes@ulysses.informatik.rwth-aachen.de) *
|
||||||
|
* *
|
||||||
|
* You may copy or modify this file in any manner you wish, provided *
|
||||||
|
* that this notice is always included, and that you hold the author *
|
||||||
|
* harmless for any loss or damage resulting from the installation or *
|
||||||
|
* use of this software. *
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
#include "tweak.h"
|
||||||
|
#include "client_def.h"
|
||||||
|
#include "c_extern.h"
|
||||||
|
#include "bsd_extern.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <time.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#ifdef STDC_HEADERS
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
#include "find.h"
|
||||||
|
|
||||||
|
extern PLAN *plan;
|
||||||
|
|
||||||
|
time_t now; /* time find was run */
|
||||||
|
int isoutput; /* user specified output operator */
|
||||||
|
int process; /* process current directory */
|
||||||
|
|
||||||
|
static void usage_ffind PROTO0((void));
|
||||||
|
|
||||||
|
static void eval_file PROTO4(char *, name, struct stat *, sbufp,
|
||||||
|
int, mode, int, level)
|
||||||
|
{
|
||||||
|
register PLAN *p;
|
||||||
|
|
||||||
|
for (p = plan; p && (p->eval)(p, sbufp, name); p = p->next);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int eval_dir PROTO3(char *, name, struct stat *, sbufp, u_long *, sum)
|
||||||
|
{
|
||||||
|
register PLAN *p;
|
||||||
|
|
||||||
|
process = 0;
|
||||||
|
for (p = plan; p && (p->eval)(p, sbufp, name); p = p->next);
|
||||||
|
return (process);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main PROTO2(int, argc, char **, argv)
|
||||||
|
{
|
||||||
|
register char **p;
|
||||||
|
char *singlefile[2], **files;
|
||||||
|
|
||||||
|
env_client();
|
||||||
|
(void)time(&now); /* initialize the time-of-day */
|
||||||
|
|
||||||
|
p = ++argv;
|
||||||
|
|
||||||
|
/* First option delimits the file list. */
|
||||||
|
while (*p && !option(*p)) p++;
|
||||||
|
if (p == argv) usage_ffind();
|
||||||
|
|
||||||
|
find_formplan(p);
|
||||||
|
|
||||||
|
/* Execute plan for all file lists */
|
||||||
|
while (*argv) {
|
||||||
|
if (argv >= p) break;
|
||||||
|
if (!(files = glob(*argv))) {
|
||||||
|
files = singlefile;
|
||||||
|
singlefile[0] = *argv;
|
||||||
|
singlefile[1] = 0;
|
||||||
|
}
|
||||||
|
for ( ; *files; files++)
|
||||||
|
util_process_file(*files, 0, eval_file, eval_dir, 0L, 0);
|
||||||
|
|
||||||
|
argv++;
|
||||||
|
}
|
||||||
|
|
||||||
|
client_done();
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void usage_ffind PROTO0((void))
|
||||||
|
{
|
||||||
|
fprintf(stderr,"usage: ffind file [file ...] expression\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
37
clients/flscmd.c
Normal file
37
clients/flscmd.c
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*********************************************************************\
|
||||||
|
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||||
|
* *
|
||||||
|
* You may copy or modify this file in any manner you wish, provided *
|
||||||
|
* that this notice is always included, and that you hold the author *
|
||||||
|
* harmless for any loss or damage resulting from the installation or *
|
||||||
|
* use of this software. *
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
#include "tweak.h"
|
||||||
|
#include "client_def.h"
|
||||||
|
#include "c_extern.h"
|
||||||
|
#include "bsd_extern.h"
|
||||||
|
#include "ls.h"
|
||||||
|
#ifdef STDC_HEADERS
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int ls_bad PROTO1(int, n)
|
||||||
|
{
|
||||||
|
client_done();
|
||||||
|
exit(n);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main PROTO2(int, argc, char **, argv)
|
||||||
|
{
|
||||||
|
env_client();
|
||||||
|
|
||||||
|
fls_main(argc,argv);
|
||||||
|
|
||||||
|
client_done();
|
||||||
|
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
50
clients/fmkdir.c
Normal file
50
clients/fmkdir.c
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*********************************************************************\
|
||||||
|
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||||
|
* *
|
||||||
|
* You may copy or modify this file in any manner you wish, provided *
|
||||||
|
* that this notice is always included, and that you hold the author *
|
||||||
|
* harmless for any loss or damage resulting from the installation or *
|
||||||
|
* use of this software. *
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
#include "tweak.h"
|
||||||
|
#include "client_def.h"
|
||||||
|
#include "c_extern.h"
|
||||||
|
#ifdef STDC_HEADERS
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
#include "my-string.h"
|
||||||
|
|
||||||
|
static int make_dir PROTO1(char *, p)
|
||||||
|
{
|
||||||
|
char *op;
|
||||||
|
UBUF *ub;
|
||||||
|
|
||||||
|
op = util_abs_path(p);
|
||||||
|
|
||||||
|
ub = client_interact(CC_MAKE_DIR,0L, strlen(op), (unsigned char *)op+1, 0,
|
||||||
|
(unsigned char *)NULLP);
|
||||||
|
|
||||||
|
if(ub->cmd == CC_ERR) {
|
||||||
|
fprintf(stderr,"Can't create %s: %s\n",p,ub->buf);
|
||||||
|
free(op);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("%s\t: %s\n",p,ub->buf);
|
||||||
|
|
||||||
|
free(op);
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main PROTO2(int, argc, char **, argv)
|
||||||
|
{
|
||||||
|
env_client();
|
||||||
|
while(*++argv) make_dir(*argv);
|
||||||
|
client_done();
|
||||||
|
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
57
clients/frmcmd.c
Normal file
57
clients/frmcmd.c
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
/*********************************************************************\
|
||||||
|
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||||
|
* *
|
||||||
|
* You may copy or modify this file in any manner you wish, provided *
|
||||||
|
* that this notice is always included, and that you hold the author *
|
||||||
|
* harmless for any loss or damage resulting from the installation or *
|
||||||
|
* use of this software. *
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
#include "tweak.h"
|
||||||
|
#include "client_def.h"
|
||||||
|
#include "c_extern.h"
|
||||||
|
#include "bsd_extern.h"
|
||||||
|
#ifdef STDC_HEADERS
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
#include "my-string.h"
|
||||||
|
|
||||||
|
static int remove_it PROTO1(char *, p)
|
||||||
|
{
|
||||||
|
char *op;
|
||||||
|
UBUF *ub;
|
||||||
|
|
||||||
|
op = util_abs_path(p);
|
||||||
|
|
||||||
|
ub = client_interact(CC_DEL_FILE,0L, strlen(op), (unsigned char *)op+1, 0,
|
||||||
|
(unsigned char *)NULLP);
|
||||||
|
|
||||||
|
if(ub->cmd == CC_ERR) {
|
||||||
|
fprintf(stderr,"Can't remove %s: %s\n",p,ub->buf);
|
||||||
|
free(op); return(-1);
|
||||||
|
}
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main PROTO2(int, argc, char **, argv)
|
||||||
|
{
|
||||||
|
char **av, *av2[2];
|
||||||
|
|
||||||
|
env_client();
|
||||||
|
|
||||||
|
while(*++argv) {
|
||||||
|
if(!(av = glob(*argv))) {
|
||||||
|
av = av2;
|
||||||
|
av2[0] = *argv;
|
||||||
|
av2[1] = 0;
|
||||||
|
}
|
||||||
|
while(*av) remove_it(*av++);
|
||||||
|
}
|
||||||
|
|
||||||
|
client_done();
|
||||||
|
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
58
clients/frmdircmd.c
Normal file
58
clients/frmdircmd.c
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*********************************************************************\
|
||||||
|
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||||
|
* *
|
||||||
|
* You may copy or modify this file in any manner you wish, provided *
|
||||||
|
* that this notice is always included, and that you hold the author *
|
||||||
|
* harmless for any loss or damage resulting from the installation or *
|
||||||
|
* use of this software. *
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
#include "tweak.h"
|
||||||
|
#include "client_def.h"
|
||||||
|
#include "c_extern.h"
|
||||||
|
#include "bsd_extern.h"
|
||||||
|
#ifdef STDC_HEADERS
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
|
#include "my-string.h"
|
||||||
|
|
||||||
|
static int remove_it PROTO1(char *, p)
|
||||||
|
{
|
||||||
|
char *op;
|
||||||
|
UBUF *ub;
|
||||||
|
|
||||||
|
op = util_abs_path(p);
|
||||||
|
|
||||||
|
ub = client_interact(CC_DEL_DIR,0L, strlen(op), (unsigned char *)op+1, 0,
|
||||||
|
(unsigned char *)NULLP);
|
||||||
|
|
||||||
|
if(ub->cmd == CC_ERR) {
|
||||||
|
fprintf(stderr,"Can't remove %s: %s\n",p,ub->buf);
|
||||||
|
free(op);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main PROTO2(int, argc, char **, argv)
|
||||||
|
{
|
||||||
|
char **av, *av2[2];
|
||||||
|
|
||||||
|
env_client();
|
||||||
|
|
||||||
|
while(*++argv) {
|
||||||
|
if(!(av = glob(*argv))) {
|
||||||
|
av = av2;
|
||||||
|
av2[0] = *argv;
|
||||||
|
av2[1] = 0;
|
||||||
|
}
|
||||||
|
while(*av) remove_it(*av++);
|
||||||
|
}
|
||||||
|
|
||||||
|
client_done();
|
||||||
|
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
48
include/client_def.h
Normal file
48
include/client_def.h
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*********************************************************************\
|
||||||
|
* Copyright (c) 1991 by Wen-King Su (wen-king@vlsi.cs.caltech.edu) *
|
||||||
|
* *
|
||||||
|
* You may copy or modify this file in any manner you wish, provided *
|
||||||
|
* that this notice is always included, and that you hold the author *
|
||||||
|
* harmless for any loss or damage resulting from the installation or *
|
||||||
|
* use of this software. *
|
||||||
|
\*********************************************************************/
|
||||||
|
|
||||||
|
#ifndef _FSP_CLIENT_DEF_H_
|
||||||
|
#define _FSP_CLIENT_DEF_H_ 1
|
||||||
|
|
||||||
|
#include "common_def.h"
|
||||||
|
#include "client_conf.h"
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* The following global variables are used to change the behavior when *
|
||||||
|
* fgrab encounters a file with the same name in the current directory *
|
||||||
|
* Added 11 Jan 93 by A.E.J.Fellows *
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
#define C_NOCLOBBER 1 /* Will not overwrite file of same name */
|
||||||
|
#define C_CLOBBER 2 /* Will always overwrite file even if
|
||||||
|
remote file is not found */
|
||||||
|
#define C_UNIQUE 3 /* Create unique name to avoid overwrite */
|
||||||
|
#define C_TEMPNAME 4 /* Download to temp name */
|
||||||
|
#define C_APPEND 5 /* Downloads will attempt to append to
|
||||||
|
end of file if it already exists */
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* These structures are used to implement a opendir/readdir mechanism similar
|
||||||
|
* to that of the normal opendir/reader mechanism in unix.
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
typedef struct DDLIST { struct DDLIST *next;
|
||||||
|
char *path;
|
||||||
|
RDIRENT **dep_root;
|
||||||
|
int ref_cnt; } DDLIST;
|
||||||
|
|
||||||
|
typedef struct RDIR { DDLIST *ddp;
|
||||||
|
RDIRENT **dep; } RDIR;
|
||||||
|
|
||||||
|
typedef struct rdirent { unsigned long d_fileno;
|
||||||
|
unsigned short d_rcdlen;
|
||||||
|
unsigned short d_namlen;
|
||||||
|
char *d_name; } rdirent;
|
||||||
|
|
||||||
|
#endif /* _FSP_CLIENT_DEF_H_ */
|
||||||
Loading…
Reference in New Issue
Block a user