CONSTANT_SRCS = [
  'BuckConstant.java',
]
java_library(
  name = 'constants',
  srcs = CONSTANT_SRCS,
  visibility = [ 'PUBLIC' ],
)


EXCEPTION_SRCS = [
  'ExceptionWithHumanReadableMessage.java',
  'HumanReadableException.java',
]
java_library(
  name = 'exceptions',
  srcs = EXCEPTION_SRCS,
  deps = [
    '//lib:guava',
    '//lib:jsr305',
  ],
  visibility = [ 'PUBLIC' ],
)


IO_SRCS = [
  'Ansi.java',
  'Console.java',
  'CapturingPrintStream.java',
  'DefaultDirectoryTraverser.java',
  'DirectoryTraverser.java',
  'DirectoryTraversal.java',
  'DirtyPrintStreamDecorator.java',
  'InputStreamConsumer.java',
  'MoreFiles.java',
  'MorePaths.java',
  'ProcessExecutor.java',
  'ProjectFilesystem.java',
  'Verbosity.java',
]
java_library(
  name = 'io',
  srcs = IO_SRCS,
  deps = [
    '//lib:guava',
    '//lib:jsr305',
    '//src/com/facebook/buck/util/environment:environment',
    '//src/com/facebook/buck/zip:stream',
  ],
  visibility = [ 'PUBLIC' ],
)

NETWORK_SRCS = [
  'BlockingHttpEndpoint.java',
  'HttpEndpoint.java',
]
java_library(
  name = 'network',
  srcs = NETWORK_SRCS,
  deps = [
    ':exceptions',
    '//lib:guava',
  ],
  visibility = [ 'PUBLIC' ],
)

java_library(
  name = 'util',
  srcs = glob(
    includes = ['*.java'],
    excludes = CONSTANT_SRCS + EXCEPTION_SRCS + IO_SRCS + NETWORK_SRCS),
  deps = [
    ':constants',
    ':exceptions',
    ':io',
    '//lib:guava',
    '//lib:jsr305',
    '//src/com/facebook/buck/zip:stream',
  ],
  visibility = [
    'PUBLIC',
  ],
)

sh_test(
  name = 'one_project_filesystem_test',
  test = 'one_project_filesystem_test.sh',
)
