blob: 8a429d58dc87ff940d213739223b82cc930e637a [file] [log] [blame]
bigbiff bigbiff9c754052013-01-09 09:09:08 -05001/*
2 main.c (20.01.11)
3 Prints or changes exFAT volume label.
4
bigbiff bigbiffca829c42013-01-28 08:14:25 -05005 Copyright (C) 2011-2013 Andrew Nayenko
bigbiff bigbiff9c754052013-01-09 09:09:08 -05006
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
19*/
20
21#include <stdio.h>
22#include <string.h>
23#include <exfat.h>
24
25int main(int argc, char* argv[])
26{
27 char** pp;
28 struct exfat ef;
29 int rc = 0;
30
31 for (pp = argv + 1; *pp; pp++)
32 if (strcmp(*pp, "-v") == 0)
33 {
34 printf("exfatlabel %u.%u.%u\n", EXFAT_VERSION_MAJOR,
35 EXFAT_VERSION_MINOR, EXFAT_VERSION_PATCH);
bigbiff bigbiffca829c42013-01-28 08:14:25 -050036 puts("Copyright (C) 2011-2013 Andrew Nayenko");
bigbiff bigbiff9c754052013-01-09 09:09:08 -050037 return 0;
38 }
39
40 if (argc != 2 && argc != 3)
41 {
42 fprintf(stderr, "Usage: %s [-v] <device> [label]\n", argv[0]);
43 return 1;
44 }
45
46 if (argv[2])
47 {
48 if (exfat_mount(&ef, argv[1], "") != 0)
49 return 1;
50 rc = (exfat_set_label(&ef, argv[2]) != 0);
51 }
52 else
53 {
54 if (exfat_mount(&ef, argv[1], "ro") != 0)
55 return 1;
56 puts(exfat_get_label(&ef));
57 }
58
59 exfat_unmount(&ef);
60 return rc;
61}