blob: f1c74c31d197cd0cdc83f6287d68e21478f07d70 (
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
|
import java.io.File
package object common {
/** An alias for the `Nothing` type.
* Denotes that the type should be filled in.
*/
type ??? = Nothing
/** An alias for the `Any` type.
* Denotes that the type should be filled in.
*/
type *** = Any
/**
* Get a child of a file. For example,
*
* subFile(homeDir, "b", "c")
*
* corresponds to ~/b/c
*/
def subFile(file: File, children: String*) = {
children.foldLeft(file)((file, child) => new File(file, child))
}
/**
* Get a resource from the `src/main/resources` directory. Eclipse does not copy
* resources to the output directory, then the class loader cannot find them.
*/
def resourceAsStreamFromSrc(resourcePath: List[String]): Option[java.io.InputStream] = {
val classesDir = new File(getClass.getResource(".").toURI)
val projectDir = classesDir.getParentFile.getParentFile.getParentFile.getParentFile
val resourceFile = subFile(projectDir, ("src" :: "main" :: "resources" :: resourcePath): _*)
if (resourceFile.exists)
Some(new java.io.FileInputStream(resourceFile))
else
None
}
}
|