import os
import shutil
import yaml

def copiar_pasta(origem, destino):
    try:
        shutil.copytree(origem, destino, dirs_exist_ok=True)
        print(f'Conteúdos de "{origem}" copiados para "{destino}" com sucesso.')
    except Exception as e:
        print(f'Ocorreu um erro ao copiar os conteúdos de "{origem}" para "{destino}": {e}')

def main():
    # Ler o arquivo _quarto.yml
    with open('_quarto.yml', 'r') as yml_file:
        config = yaml.load(yml_file, Loader=yaml.FullLoader)

    # Verificar se as chaves necessárias estão presentes no arquivo
    if 'project' in config and 'output-dir' in config['project']:
        output_dir = config['project']['output-dir']
    else:
        print('Chaves ausentes no arquivo _quarto.yml. Certifique-se de que as chaves project e output-dir estão presentes.')
        return

    # Lista de pastas a serem copiadas
    pastas_a_copiar = ['scripts', 'img', 'interativos']

    # Copiar o conteúdo das pastas para o diretório de saída
    for pasta in pastas_a_copiar:
        origem = os.path.join(os.getcwd(), pasta)
        destino = os.path.join(os.getcwd(), output_dir, pasta)
        copiar_pasta(origem, destino)

if __name__ == "__main__":
    main()
