summaryrefslogtreecommitdiff
path: root/src/main/java/io/skas/melbjvm/nio2/App.java
blob: 597d610248a8072904127c71f05d86b739b12fbd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package io.skas.melbjvm.nio2;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;

/**
 * @author Szymon Szukalski [szymon.szukalski@gmail.com]
 */
public class App {

    public static final Logger LOG = LoggerFactory.getLogger(App.class);

    public static void main(String[] args) throws IOException {

        final Path path;

        if (args.length > 0) {
            path = Paths.get(args[0]);
        } else {
            path = Paths.get(System.getProperty("java.io.tmpdir"));
        }

        if (Files.exists(path, LinkOption.NOFOLLOW_LINKS)) {

            Nio2MetaDataLoggingUtils.logSupportedViews(path);
            Nio2MetaDataLoggingUtils.logFileStoreAttributes(path);
            Nio2MetaDataLoggingUtils.logBasicFileAttributes(path);
            Nio2MetaDataLoggingUtils.logDosFileAttributes(path);
            Nio2MetaDataLoggingUtils.logPosixFileAttributes(path);
            Nio2MetaDataLoggingUtils.logFileOwnerAttributes(path);

            Watcher watcher = new Watcher();

            try {
                watcher.watchDirectory(path);
            } catch (IOException | InterruptedException ex) {
                LOG.error(ex.getMessage());
            }

        } else {

            LOG.error("Path {} doesn't exist. Exiting", path);

        }
    }
}