Commit Graph

146 Commits

Author SHA1 Message Date
lukem
68a03bad5d - add lineno field to NODE
- move inotype() prototype into mtree.h from extern.h
2001-10-25 03:00:14 +00:00
lukem
273cdba6ea document requirement about first node being a directory called "." 2001-10-22 07:11:46 +00:00
lukem
57566f70f8 - enforce the top-most entry must be "." and must be a directory; avoids
various potential problems when intermixing full and relative paths
- changes to make it much easier to use spec() - the specfile parser - in
  other programs (via .PATHing spec.c and misc.c):
	- move excludetags, includetags and keys from mtree.c to misc.c
	- implement mtree_err() using vwarnx() instead of assuming name is
	  "mtree"
	- move inotype() and nodetype() from compare.c to misc.c
	- add nodetoinode(), to convert from an mtree F_* type to a
	  mode_t S_IF* type
	- clean up #include use; don't assume "mtree.h" pulls in some
	  standard includes
	- change spec() to take a FILE * arg (where the specfile is read from)
2001-10-22 07:07:46 +00:00
lukem
dafcb3846f improve enumeration of the different specfile entry types 2001-10-19 02:57:34 +00:00
lukem
f644bd620b complete WARNS=2 cleanup (with a bit of ickiness for the fts_open argv issue) 2001-10-18 05:06:01 +00:00
lukem
0b41840fcb need semicolon between goto label and closing brace 2001-10-18 04:45:41 +00:00
lukem
98df36b3a5 make this mostly WARNS=2 safe 2001-10-18 04:37:56 +00:00
lukem
7f56f49762 convert from strtok() to strsep() 2001-10-17 01:19:17 +00:00
enami
a28fcd776c Make mtree a host tool and use it when appropriate. 2001-10-09 05:19:03 +00:00
lukem
bc1697fc70 Add "device" keyword, which allows the device number to be specified,
to be later checked and possibly created. Uses parsing and encoding
routines from mknod(8).
2001-10-09 04:50:00 +00:00
lukem
09805a42a3 - use "full path" instead of "absolute path"; perry thinks it's less confusing
- clarify the `all' keyword support in -k, -K and -R. should solve [misc/14186]
- use ".sp" instead of ".Pp"  (from FreeBSD).
2001-10-08 00:53:30 +00:00
lukem
8b951d1f0d * Implement support for absolute paths in the specfile. An absolute path
is one that contains a `/' character that is not the first character.
  All parent directories referenced in the path must exist.
* Add copyright for all the work I've done.
* Document the history of various features added since 4.3-Reno.
2001-10-05 15:32:57 +00:00
lukem
d8c78c600b - support "all" as a valid keyword for -k, -K and -R.
- parsekey(): support "all" as a keyword which returns a value with all bits
  set that pertain to a valid keyword.
- dump_nodes():
	- only print out a keyword if it's requested AND it's set in the node
	- UNAME falls back to UID if the user name can't be determined
	- GNAME falls back to GID if the group name can't be determined
- rework man page:
	- use Sy instead of Cm
	- use Pq, Dq, Ql, etc instead of ``...''
2001-10-05 13:14:56 +00:00
lukem
acd40f8dd4 dump_nodes() fixes:
- in F_GID, print the gid not the uid
- support F_GNAME
2001-10-05 12:44:47 +00:00
lukem
4da22cb499 cleanup tags support;
- create a typedef struct slist_t to hold stuff in (avoid stringlist(3)
  because it's less portable)
- move the tag manipulate stuff into misc.c
- add matchtags(), which returns 0 if the node is explicitly excluded,
  or not included if an include list is given; or 1 otherwise
- in -D, change tags support from files-only to all-non-directories

(xxx; still considering implementing tags support for -c and !-D)
2001-10-05 01:03:24 +00:00
wiz
2cf8bd020e Whitespace fixes, sort sections. 2001-10-04 11:24:05 +00:00
lukem
3f1c463ef7 - skip F_OPT entries (recently added diagnostic detected this)
- put F_TAG parsing in the correct alphabetical position
2001-10-04 05:03:42 +00:00
lukem
7c30045cef features:
- add a new keyword - "tags" - which is a comma separated list of tags
  associated with that file.
- add "-E tags"; exclude files in -D output with matching tags
- add "-I tags"; only include files in -D output with matching tags
  (default is to list all)

fixes:
- move all extern variable references from individual files into extern.h
- `quote' some more user-specified strings in error messages
- man page: list an options arguments in the description, and sort xrefs.
2001-10-04 04:51:27 +00:00
lukem
a251d86b79 add F_TYPE to KEYDEFAULT.
whilst -c always prints the type (even if removed with -R),
-D wasn't printing it in the default config
2001-10-03 14:33:49 +00:00
lukem
0c2c66fb9a - implement -D - dump the specfile out in a manner that's parseable
by various tools
- implement -R key  - remove the given key(s) from the list of keys to print
  (now it's possible with "-k type -R type" to remove all keys :)
- rename ftype() to nodetype(), and make it public
- use pwcache(3) functions instead of get{gr,pw}{nam,uid}(3)
- add dump_nodes(), which provides the guts for -D.
2001-10-01 02:30:40 +00:00
perry
9864f0aae8 Add a -l flag which does "loose" permissions checks, i.e. a mode 444
matches a check for mode 644 (though obviously not the reverse). This
can be used by the nightly security run, making the output1 more useful
by having it contain fewer spurious permissions violations.

Note that I did not make -l work if you have a sgid/suid/sticky bit
set. I don't know how you could cause security trouble with more
stringent settings and a suid file, but I don't want to find out the
hard way.
2001-09-22 03:56:29 +00:00
thorpej
85f032ca45 Fix printf format. 2001-09-11 15:10:45 +00:00
lukem
617a65b6f7 replace home-grown parser with fparseln() 2001-09-10 03:22:24 +00:00
lukem
c0e6fdedfc - add parsetype() (a la parsekey()) to parse the "type=xxx" arg. this improves
the error detection for invalid types, as well as shrinking binary size
- implement inotype() using ftype(), rather than duplicating the switch
- change "char *" arguments to "const char *"
2001-07-18 04:51:54 +00:00
christos
f69fcce6d5 improve readability of error messages by quoting the string that we
did not understand. Avoids lossage like "unknown group named".
2001-03-25 20:02:01 +00:00
cgd
42bf2daf5b use setprogname 2001-03-21 23:56:35 +00:00
simonb
7cbb4e05a0 ANSIfy, KNF, in preperation for more work. 2001-03-09 03:09:45 +00:00
hubertf
1156c833f6 Remove all the "#ifdef __APPLE__" code, to make this actually
build again on Darwin. The code in question is outdated.

OK'd by Wilfredo Sanchez wsanchez@MIT.EDU.
2001-02-20 19:45:51 +00:00
lukem
c2aa46e7c2 use %ll_ instead of the less standard %q_ 2001-01-05 03:27:26 +00:00
lukem
ebcd47ebf3 use .Xr 2000-11-07 05:44:50 +00:00
is
0e32b4bfb3 LP64 format string cleanup. Problem reported by garbled. 2000-10-15 12:27:25 +00:00
is
d8302e2d73 More format string cleanups by sommerfeld. 2000-10-11 20:23:46 +00:00
enami
e92c3f2867 - The type of return value of setmode is a void * and getmode takes it,
rather than mode_t *.
- Free the storage allocated by setmode unless it is obvious that program
  exits immediately.
2000-10-10 14:30:40 +00:00
wennmach
36f6fb7e06 mtree uses strsvis, not strvis. 2000-10-05 20:16:02 +00:00
wennmach
914178b225 code.c is no longer used, we use strsvis instead. Removed prototypes
from extern.h
1999-12-07 18:42:06 +00:00
wennmach
e1bf4e526c Use strunvis instead of homebrewed "decode" routine 1999-12-01 22:14:46 +00:00
wennmach
dff19e227b Now that we have strsvis, use it. 1999-12-01 22:12:52 +00:00
wennmach
5677540edf Add __RCSID() 1999-11-12 14:42:35 +00:00
wennmach
7b5b69d3cb Add RCS tag 1999-11-09 22:41:53 +00:00
drochner
68062ca8dc prototype encode()/decode() 1999-11-09 10:16:55 +00:00
wennmach
7db0eb0492 Encode file names using strvis(3) when creating a specification.
Escape white space characters and `#' characters. Do the inverse
when reading specs.

This is a temporary fix until we have strzouvis(3) (or some such)
which is an improved version of strvis (taking an additional list
of characters to encode).

Fixes PR 5006 and PR 7663
1999-11-07 20:23:01 +00:00
christos
ac79e98358 fix thinko in mtime stuff. 1999-07-10 19:59:28 +00:00
christos
78a99dbab7 portability fixes:
- don't use timespecs in struct stat on non 4.4BSD systems
- don't assume that tv_sec is a time_t
1999-07-06 15:11:14 +00:00
hubertf
657f0ba4f7 Actually generate MD5 checksums, as reported in PR 7928.
Approved by Dr. Lex Wennmacher <wennmach@geo.Uni-Koeln.DE>
1999-07-06 12:59:12 +00:00
mycroft
d77575d3c8 Clean up SYNOPSIS formatting. 1999-03-07 11:58:22 +00:00
mrg
f2aaba6db6 - add -m and -i to change file flags more usefully.
- fix bugs in fileflags checking

all of the above from dr. lex wennmacher <wennmach@geo.Uni-Koeln.DE>
with some error fixes from egcs via myself.
1999-02-11 15:32:23 +00:00
christos
62871103f9 Appease gcc-2.8.1, make printf formats more portable. 1998-12-19 15:38:45 +00:00
jwise
2e6cacfae6 Add an `md5' keyword to mtree, which takes as an argument the MD5 cryptographic
checksum of the file in question, optionally preceeded by `0x'.

This has been tested, and does work, AFAICT.  There is currently no md5 equivalent
of the '-s' flag for use with checksum.
1998-12-06 19:07:53 +00:00
itohy
6b676a3cca getcwd() is not equivalent of getwd() if you want to print an error message. 1998-12-05 03:29:25 +00:00
thorpej
6b7fe574f7 Use getcwd(3) instead of getwd(3). 1998-12-03 23:33:10 +00:00
christos
e091e64548 Namespace protection against MAXUID etc. 1998-11-03 15:14:40 +00:00
mrg
f2fb63efda add support for 4.4BSD file flags. we take a `flags=xxx' parameter,
using the same style of naming as chflags, ls & xinstall use, plus an
additional `none' to turn off a default setting.
1998-10-10 07:50:27 +00:00
wsanchez
c45946d27c Use u_int32_t rather than Sys-V u_long.
Rename err() to mtree_err(), to avoid conflict with libc.
1998-10-08 02:04:55 +00:00
itohy
20b86c5f48 The return value of setmode(3) is a pointer to malloc()'ed area
and must be freed to avoid memory leaks if called repeatedly.
1998-09-23 19:46:00 +00:00
nathanw
b757463521 Add braces to satisfy egcs. 1998-08-30 03:20:09 +00:00
ross
5b1f2d4c8c Add {} pairs to shut up egcs. 1998-08-27 18:03:42 +00:00
mrg
32f519716b - use an array MAXHOSTNAMELEN+1 size to hold hostnames
- ensure hostname from gethostname() is nul-terminated in all cases
- minor KNF
- use MAXHOSTNAMELEN over various other values/defines
- be safe will buffers that hold hostnames
1998-07-06 06:56:06 +00:00
lukem
0a94f4f077 use CPPFLAGS instead of CFLAGS 1997-10-25 06:57:53 +00:00
enami
7a8787ba53 Make this compile again on NetBSD/alpha; cast off_t variable to long long
so that it matches printf format `%qd'.
1997-10-24 03:12:06 +00:00
lukem
4eb7653054 WARNSify, getopt returns -1 not EOF 1997-10-17 11:46:30 +00:00
mrg
590bf19cde merge lite-2 1997-10-17 05:24:29 +00:00
agc
f642bb0d2f Add -U flag, checking for mismatch. This is the same as the old -u flag,
except that an error which was corrected is deemed not to be an error.

Necessary for use in the FreeBSD ports system.
1997-08-20 15:14:51 +00:00
mikel
fb325bad88 fix printf() formats, make explicit comparisons to NULL (gcc -Wall) 1997-07-11 07:05:29 +00:00
mikel
d74bc9dc39 xref chown(8) not chown(1), kill extra comma 1997-07-10 05:14:15 +00:00
lukem
37def5da97 Don't incorrectly warn about a subdirectory of 'foo' called 'bar' when there's
directory at the same level as 'foo' called 'bar'. (e.g, a definition
of usr/obj exists, and a def for usr/bin, but none for usr/obj/bin. don't
warn about usr/obj/bin because of the usr/bin entry).
Fix from enami tsugutomo <enami@ba2.so-net.or.jp> in [bin/3365]
1997-06-23 14:34:52 +00:00
gwr
10e180cc49 Back out the .PATH.c changes. The .depend problem (and others)
will be fixed using the new .NOPATH make feature instead.
1997-05-08 21:11:01 +00:00
gwr
012e528f2e Use .PATH.c: ... 1997-05-06 20:44:56 +00:00
mikel
b4f13ff0c4 use appropriate strto*() functions, and cast results when appropriate;
fixes PR bin/1582.
1997-04-25 05:45:24 +00:00
thorpej
cf8907875b Add a missing "break;", pointed out by Chris Demetriou. 1996-09-05 23:29:22 +00:00
mycroft
6a6476be8b Add a `-t' option to update time stamps. 1996-09-05 09:56:48 +00:00
mycroft
e73875ce0a Only record sizes for regular files. 1996-09-05 09:24:19 +00:00
jtc
dd05bd5124 Rename struct timespec fields to conform to POSIX.1b 1996-02-01 00:04:52 +00:00
pk
ad511bd89a Insert parentheses to get correct precedence when comparing time-stamps
(from Arne Juul; PR#1660).
1995-10-22 20:12:07 +00:00
cgd
788c306f2b add an 'optional' keyword, which allows files to be in the
specification, but _not_ in the file hierarchy.  contrib'd by:
Ed Symanzik <zik@enoch.cl.msu.edu>.  Man page adjustment to match, and
minor man page cleanup, by me.
1995-03-07 21:26:23 +00:00
cgd
94f5a7441c add NetBSD id's 1995-03-07 21:12:04 +00:00
cgd
d03f028e33 clean up import, fix a few bugs, etc. 1995-03-07 15:28:32 +00:00
cgd
82f956cd93 from 4.4-Lite 1995-03-07 14:44:05 +00:00
cgd
d8806814a6 specify man pages the new way. 1994-12-22 11:32:57 +00:00
cgd
82e71aa1e4 #definery fun... 1994-04-25 18:21:23 +00:00
cgd
d78ddc337d off_t exp. 1994-03-27 09:09:54 +00:00
cgd
7af90ebe38 off_t exp. 1994-03-27 09:09:49 +00:00
cgd
10a690b9a2 off_t exp. 1994-03-27 09:09:42 +00:00
cgd
8415642178 don't forget the man page. from Luke Mewburn <lm@rmit.edu.au> 1994-03-19 07:55:56 +00:00
cgd
44c6a0bbc1 make things a bit more consistent 1993-11-17 11:00:52 +00:00
cgd
454f76bbdd make it compile... 1993-11-02 08:44:00 +00:00
cgd
aea2695257 fix oops 1993-11-02 08:43:48 +00:00
mycroft
ef17c615c2 Clean up deleted files. 1993-11-02 07:51:15 +00:00
cgd
476023b5bb latest mtree from uunet. doesn't compile, but that'll be fixed soon.
(want to have 'pseudo-virgin' sources, for when fixed fnmatch stuff
is released...)
1993-11-02 07:51:06 +00:00
jtc
99cd400e2e Use *->fts_errno instead of errno after fts_read(). The fts manpage
indicates that the fts_errno will be set to the correct value, but there
are no guarentees about errno.
1993-10-01 01:03:22 +00:00
deraadt
5bfebdcaf0 update for fts library change 1993-08-06 03:48:27 +00:00
mycroft
e9d867ef50 Add RCS identifiers. 1993-08-01 17:54:45 +00:00
mycroft
c3e42d1c64 Add RCS indentifiers. 1993-08-01 07:22:47 +00:00
mycroft
b465cf4697 Add RCS identifiers. 1993-07-30 22:11:51 +00:00
jtc
5108aaad56 Update source to use posix fnmatch 1993-06-16 17:19:05 +00:00
mycroft
0152106f20 Reverse sense of fnmatch() to match POSIX. 1993-04-10 01:32:25 +00:00
cgd
61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00