2 * Copyright (c) 1995 - 2001 Kungliga Tekniska Högskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
17 * 3. Neither the name of the Institute nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
21 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39 mkmount_cmd (int argc
, char **argv
)
50 struct agetargs mkmargs
[] = {
51 {"dir", 0, aarg_string
, NULL
, "mount point directory name",
52 "directory", aarg_mandatory
},
53 {"vol", 0, aarg_string
, NULL
, "volume to mount",
54 "volume", aarg_mandatory
},
55 {"cell", 0, aarg_string
, NULL
, "cell of volume",
56 "cell", aarg_optional_swless
},
57 {"rw", 0, aarg_flag
, NULL
, "mount read-write", NULL
},
58 {"help", 0, aarg_flag
, NULL
, NULL
, NULL
},
59 {NULL
, 0, aarg_end
, NULL
}}, *arg
;
62 arg
->value
= &dirname
; arg
++;
63 arg
->value
= &volname
; arg
++;
64 arg
->value
= &cell
; arg
++;
65 arg
->value
= &rwflag
; arg
++;
66 arg
->value
= &helpflag
; arg
++;
68 if (agetarg (mkmargs
, argc
, argv
, &optind
, AARG_AFSSTYLE
)) {
69 aarg_printusage(mkmargs
, "fs mkmount", "", AARG_AFSSTYLE
);
77 printf("unknown option %s\n", *argv
);
86 snprintf(buf
, sizeof(buf
), "%c%s:%s.", prefix
, cell
, volname
);
88 snprintf(buf
, sizeof(buf
), "%c%s.", prefix
, volname
);
90 if (symlink (buf
, dirname
) == -1) {