summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/cvs/cvs/create_adm.c
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1995-12-10 23:10:40 +0000
committerpeter <peter@FreeBSD.org>1995-12-10 23:10:40 +0000
commit3cd0ec7e5b6d131441a893af091ea73a6dcaad3e (patch)
tree67e4c5ba84c1800a0fe8ad8c3c61dac79cfa5b1b /gnu/usr.bin/cvs/cvs/create_adm.c
parent9c0211c38d00915e1a7109af0ca88a4776e8ff28 (diff)
downloadFreeBSD-src-3cd0ec7e5b6d131441a893af091ea73a6dcaad3e.zip
FreeBSD-src-3cd0ec7e5b6d131441a893af091ea73a6dcaad3e.tar.gz
First round of the post-import cleanups...
Diffstat (limited to 'gnu/usr.bin/cvs/cvs/create_adm.c')
-rw-r--r--gnu/usr.bin/cvs/cvs/create_adm.c91
1 files changed, 66 insertions, 25 deletions
diff --git a/gnu/usr.bin/cvs/cvs/create_adm.c b/gnu/usr.bin/cvs/cvs/create_adm.c
index 55eb649..1fe8185 100644
--- a/gnu/usr.bin/cvs/cvs/create_adm.c
+++ b/gnu/usr.bin/cvs/cvs/create_adm.c
@@ -14,13 +14,16 @@
#include "cvs.h"
#ifndef lint
-static char rcsid[] = "$CVSid: @(#)create_adm.c 1.28 94/09/23 $";
-USE(rcsid)
+static const char rcsid[] = "$CVSid: @(#)create_adm.c 1.28 94/09/23 $";
+USE(rcsid);
#endif
+/* update_dir includes dir as its last component. */
+
void
-Create_Admin (dir, repository, tag, date)
+Create_Admin (dir, update_dir, repository, tag, date)
char *dir;
+ char *update_dir;
char *repository;
char *tag;
char *date;
@@ -29,6 +32,18 @@ Create_Admin (dir, repository, tag, date)
char *cp;
char tmp[PATH_MAX];
+#ifdef SERVER_SUPPORT
+ if (trace)
+ {
+ char wd[PATH_MAX];
+ getwd (wd);
+ fprintf (stderr, "%c-> Create_Admin (%s, %s, %s, %s, %s) in %s\n",
+ (server_active) ? 'S' : ' ',
+ dir, update_dir, repository, tag ? tag : "",
+ date ? date : "", wd);
+ }
+#endif
+
if (noexec)
return;
@@ -36,24 +51,9 @@ Create_Admin (dir, repository, tag, date)
(void) sprintf (tmp, "%s/%s", dir, CVSADM);
else
(void) strcpy (tmp, CVSADM);
-
if (isfile (tmp))
- error (1, 0, "there is a version here already");
- else
- {
- if (dir != NULL)
- (void) sprintf (tmp, "%s/%s", dir, OCVSADM);
- else
- (void) strcpy (tmp, OCVSADM);
-
- if (isfile (tmp))
- error (1, 0, "there is a version here already");
- }
+ error (1, 0, "there is a version in %s already", update_dir);
- if (dir != NULL)
- (void) sprintf (tmp, "%s/%s", dir, CVSADM);
- else
- (void) strcpy (tmp, CVSADM);
make_directory (tmp);
#ifdef CVSADM_ROOT
@@ -65,7 +65,14 @@ Create_Admin (dir, repository, tag, date)
(void) sprintf (tmp, "%s/%s", dir, CVSADM_REP);
else
(void) strcpy (tmp, CVSADM_REP);
- fout = open_file (tmp, "w+");
+ fout = fopen (tmp, "w+");
+ if (fout == NULL)
+ {
+ if (update_dir[0] == '\0')
+ error (1, errno, "cannot open %s", tmp);
+ else
+ error (1, errno, "cannot open %s/%s", update_dir, CVSADM_REP);
+ }
cp = repository;
strip_path (cp);
@@ -84,20 +91,54 @@ Create_Admin (dir, repository, tag, date)
}
#endif
- if (fprintf (fout, "%s\n", cp) == EOF)
- error (1, errno, "write to %s failed", tmp);
+ if (fprintf (fout, "%s\n", cp) < 0)
+ {
+ if (update_dir[0] == '\0')
+ error (1, errno, "write to %s failed", tmp);
+ else
+ error (1, errno, "write to %s/%s failed", update_dir, CVSADM_REP);
+ }
if (fclose (fout) == EOF)
- error (1, errno, "cannot close %s", tmp);
+ {
+ if (update_dir[0] == '\0')
+ error (1, errno, "cannot close %s", tmp);
+ else
+ error (1, errno, "cannot close %s/%s", update_dir, CVSADM_REP);
+ }
/* now, do the Entries file */
if (dir != NULL)
(void) sprintf (tmp, "%s/%s", dir, CVSADM_ENT);
else
(void) strcpy (tmp, CVSADM_ENT);
- fout = open_file (tmp, "w+");
+ fout = fopen (tmp, "w+");
+ if (fout == NULL)
+ {
+ if (update_dir[0] == '\0')
+ error (1, errno, "cannot open %s", tmp);
+ else
+ error (1, errno, "cannot open %s/%s", update_dir, CVSADM_ENT);
+ }
if (fclose (fout) == EOF)
- error (1, errno, "cannot close %s", tmp);
+ {
+ if (update_dir[0] == '\0')
+ error (1, errno, "cannot close %s", tmp);
+ else
+ error (1, errno, "cannot close %s/%s", update_dir, CVSADM_ENT);
+ }
/* Create a new CVS/Tag file */
WriteTag (dir, tag, date);
+
+#ifdef SERVER_SUPPORT
+ if (server_active)
+ server_set_sticky (update_dir, repository, tag, date);
+
+ if (trace)
+ {
+ fprintf (stderr, "%c<- Create_Admin\n",
+ (server_active) ? 'S' : ' ');
+ }
+#endif
+
}
OpenPOWER on IntegriCloud