/*
 * Copyright (c) 1997-1999 Departamento de Informática - UFPE
 */

/**
 * Esta classe simula uma sessão num ambiente unix.
 */
class Sessao {

    /**
     * O m&eacute;todo principal, que realiza a simulação.
     */
    public static void main(String argv[]){
        Usuario user1, user2, user3, user;
        Arquivo arq1, arq2;
        Diretorio corrente, subdir;
        byte[] bytes = new byte[30];
        String entrada, entrada2;

        user1 = new Usuario("csff","Carlos Figueira Filho,0);
        user2 = new Usuario("scbs","Sergio Soares",0);
        user3 = new Usuario("phmb","Paulo Borba",0);

        System.out.print("login: ");
        System.out.flush();

        try{
            System.in.read(bytes);
        } catch(Exception e){
            System.out.println("Erro na entrada.");
        }

        entrada = new String(bytes);
        entrada2 = entrada.trim();

        if(entrada2.equals(user1.login()))
            user = user1;
        else
            if (entrada2.equals(user2.login()))
                user = user2;
            else
                if (entrada2.equals(user3.login())) 
                    user = user3;
                else {
                    System.out.println("Voce^ nao e' um usuario autorizado.\nAdeus...");
                    return;
                }

        System.out.print("senha: ");
        System.out.flush();

        try{
            System.in.read(bytes); 
        } catch(Exception e) {
            System.out.println("Erro na entrada de dados.");
        }

        entrada = new String(bytes);

        if (!user.verifica_senha(entrada.trim())) {
            System.out.println("Senha invalida.\nAdeusinho...");
        } else {
            System.out.println("Bem-vindo, "+user.nome());
            corrente = user.home();   
            System.out.println("Diretorio corrente: "+corrente.nome());

     /* Simulando alguns comandos... */
     
            arq1 = new Arquivo("Vodu1",user);
            arq2 = new Arquivo("Vodu2",user);

            System.out.println("\ncriando arquivos Vodu1 e Vodu2");
            corrente.insere_arquivo(arq1); 
            corrente.insere_arquivo(arq2);

            System.out.println("\n"+corrente.nome()+">ls");
            corrente.ls();  

            System.out.println("\n"+corrente.nome()+">rm arq1");
            corrente.remove_arquivo(arq1);
            System.out.println("\n"+corrente.nome()+">ls");
            corrente.ls();

            System.out.println("\n"+corrente.nome()+">mkdir sub1");
            subdir = new Diretorio("sub1");
            corrente.mkdir(subdir);

            System.out.println("\n"+corrente.nome()+">ls");
            corrente.ls();
        }
    }
}
