🚀 Biblioteca: Sistema Operacional

Controle o computador e interaja com o sistema operacional!

🚀?

Data e Hora

-- Obter data/hora atual formatada
exiba(sistema_operacional.obtenha_data())
-- Mostra algo como: Fri Jan 10 11:36:00 2026

-- Formatos personalizados
exiba(sistema_operacional.obtenha_data("%Y"))        -- 2026
exiba(sistema_operacional.obtenha_data("%d/%m/%Y"))  -- 10/01/2026
exiba(sistema_operacional.obtenha_data("%H:%M:%S"))  -- 11:36:42

-- Obter tabela com componentes da data
local agora = sistema_operacional.obtenha_data("*t")
exiba(agora.year, agora.month, agora.day)
exiba(agora.hour, agora.min, agora.sec)

Tempo em Segundos

-- Obter timestamp atual (segundos desde 1970)
local agora = sistema_operacional.obtenha_tempo()
exiba(agora)  -- Ex: 1736518602

-- Criar timestamp de data específica
local natal = sistema_operacional.obtenha_tempo({
    year = 2026,
    month = 12,
    day = 25,
    hour = 0
})

-- Calcular diferença entre tempos
local t1 = sistema_operacional.obtenha_tempo()
-- ... fazer algo ...
local t2 = sistema_operacional.obtenha_tempo()
local diferenca = sistema_operacional.calcule_diferença_tempo(t2, t1)
exiba("Demorou " .. diferenca .. " segundos")

Relógio de CPU

-- Medir tempo de CPU usado
local inicio = sistema_operacional.obtenha_relêgio()

para i = 1, 1000000 faça
    local x = i * 2
fim

local fim = sistema_operacional.obtenha_relêgio()
exiba("Tempo de CPU: " .. (fim - inicio) .. " segundos")

Executar Comandos

-- Executar comando do sistema
local sucesso, tipo, codigo = sistema_operacional.execute("dir")
exiba(sucesso, tipo, codigo)

-- Verificar se shell está disponÚvel
se sistema_operacional.execute() então
    exiba("Shell disponível")
fim

Gerenciar Arquivos e Pastas

-- Remover arquivo
local sucesso, erro = sistema_operacional.remova("temp.txt")
se não sucesso então
    exiba("Erro: " .. erro)
fim

-- Renomear arquivo
sistema_operacional.renomeie("antigo.txt", "novo.txt")

-- Criar pasta
local sucesso = sistema_operacional.crie_pasta("minha_pasta")
se sucesso então
    exiba("Pasta criada!")
fim

Variáveis de Ambiente

-- Obter variável de ambiente
local usuario = sistema_operacional.obtenha_variável_ambiente("USERNAME")
exiba("Usuário: " .. usuario)

local home = sistema_operacional.obtenha_variável_ambiente("HOME")
local path = sistema_operacional.obtenha_variável_ambiente("PATH")

Arquivos Temporários

-- Gerar nome de arquivo temporário
local nome_temp = sistema_operacional.gere_nome_temporário()
exiba("Arquivo temporário: " .. nome_temp)

-- Usar para criar arquivo temporário
local arquivo = terminal.abra(nome_temp, "w")
arquivo:escreva("dados temporários")
arquivo:feche()

Localização

-- Definir localização
sistema_operacional.defina_localidade("pt_BR")

-- Categorias específicas
sistema_operacional.defina_localidade("C", "numeric")  -- Números
sistema_operacional.defina_localidade("pt_BR", "time")    -- Data/hora

-- Obter localização atual
local loc = sistema_operacional.defina_localidade()
exiba("Localização: " .. loc)

Sair do Programa

-- Sair com código de sucesso
sistema_operacional.saia()
sistema_operacional.saia(0)

-- Sair com código de erro
sistema_operacional.saia(1)

-- Sair com booleano
sistema_operacional.saia(verdadeiro)   -- sucesso
sistema_operacional.saia(falso)       -- falha

-- Sair e fechar estado Lua
sistema_operacional.saia(0, verdadeiro)

Exemplo: Backup Automático

função crie_backup(arquivo_origem)
    -- Gerar nome com timestamp
    local timestamp = sistema_operacional.obtenha_data("%Y%m%d_%H%M%S")
    local nome_backup = arquivo_origem .. ".backup_" .. timestamp

    -- Copiar arquivo (renomear cópia)
    local sucesso = sistema_operacional.execute("copy " .. arquivo_origem .. " " .. nome_backup)

    se sucesso então
        exiba("Backup criado: " .. nome_backup)
    fim

    se não sucesso então
        exiba("Erro ao criar backup")
    fim
fim

crie_backup("importante.txt")

Exemplo: Monitor de Tempo

função cronometro(funcao, ...)
    local inicio = sistema_operacional.obtenha_relêgio()
    local resultados = {funcao(...)}
    local fim = sistema_operacional.obtenha_relêgio()

    exiba("Tempo de execução: " .. (fim - inicio) .. "s")
    retorne tabela.desempacote(resultados)
fim

-- Usar
função tarefa_demorada()
    local soma = 0
    para i = 1, 10000000 faça
        soma = soma + i
    fim
    retorne soma
fim

local resultado = cronometro(tarefa_demorada)
Cuidado ao usar execute, remova e saia! Estas funções podem afetar o sistema.
A biblioteca Sistema Operacional oferece controle completo sobre data/hora, arquivos e execução de comandos!
```