package sbt

import java.io.{File, FileNotFoundException, IOException}

object exit
{
	def main(args: Array[String])
	{
		System.exit(java.lang.Integer.parseInt(args(0)))
	}
}
object cat
{
	def main(args: Array[String])
	{
		try {
			if(args.length == 0)
				IO.transfer(System.in, System.out)
			else
				catFiles(args.toList)
			System.exit(0)
		} catch {
			case e =>
				e.printStackTrace()
				System.err.println("Error: " + e.toString)
				System.exit(1)
		}
	}
	private def catFiles(filenames: List[String]): Option[String] =
	{
		filenames match
		{
			case head :: tail =>
				val file = new File(head)
				if(file.isDirectory)
					throw new IOException("Is directory: " + file)
				else if(file.exists)
				{
					Using.fileInputStream(file) { stream =>
						IO.transfer(stream, System.out)
					}
					catFiles(tail)
				}
				else
					throw new FileNotFoundException("No such file or directory: " + file)
			case Nil => None
		}
	}
}
object echo
{
	def main(args: Array[String])
	{
		System.out.println(args.mkString(" "))
	}
}