El objetivo de esta práctica es la realización de un intérprete de comandos que permita al usuario introducir sentencias desde el teclado de forma interactiva. A través de esos comandos el usuario podrá ejecutar instrucciones que permitan manipular el sistema de ficheros de forma básica
Instrucciones de implementación
Las operaciones que debe poder ejecutar el usuario a través del terminal son:
- ls > listar los ficheros del directorio actual.
- cd arg → cambiar de directorio.
- cat arg → imprimir el contenido de un fichero.
- rm arg → eliminar el fichero o directorio indicado.
- mkdir arg → crea el directorio indicado en el nivel actual.
- cp arg1 arg2 → copiar el fichero de arg1 en la ubicación arg2.
- append arg1 arg2 → añade el contenido de arg2 al final del archivo indicado en arg1.
- replace arg1 arg2 arg3 → reemplaza el contenido del fichero indicado en arg1 buscando las referencias de arg2 para sustituirlas por arg3.
Para poder llevar a cabo esta tarea, el programador primero deberá crear un proyecto Maven mono-módulo, usando las instrucciones indicadas en el capítulo Construcción con Maven. El asistente dejará a disposición de éste una clase conteniendo el método public static void main que se usará para crear el bucle principal.
El aplicativo deberá leer la entrada del usuario mediante System.in mientras que el usuario no escriba exit. Hasta entonces, se ejecutará cada uno de los comandos escritos por el usuario. El bucle principal delegará la ejecución de la acción solicitada en una clase determinada. Se deberán crear tantas clases específicas como comandos enumerados.
Para validar el desarrollo, debe haber tantos test unitarios como los necesarios para alcanzar una cobertura por encima del 90 % del código fuente.