!7 concept Entry { S path; LS alternatePaths; S comment; } module UserDirectories > DynCRUD { *() { super(Entry); } start { // Add some default stuff add(userDir(), "Your home directory"); add(javaxDataDir(), "JavaX data directory"); add(javaxCachesDir(), "JavaX cache directory"); add(javaxCodeDir(), "JavaX code directory"); add(desktopDir(), "Your desktop"); add(downloadsDir(), "Your downloads"); } // API // only sets comment if it was empty void add(File dir, S comment) { Entry e = uniq(Entry, path := f2s(dir)); if (emptyAfterTrim(e.comment)) cset(e, +comment); } }