Skip to content

Instantly share code, notes, and snippets.

@Camilotk
Last active April 28, 2022 21:34
Show Gist options
  • Save Camilotk/f3057f7112210b56f56c70f64bc9949f to your computer and use it in GitHub Desktop.
Save Camilotk/f3057f7112210b56f56c70f64bc9949f to your computer and use it in GitHub Desktop.
#! /usr/bin/python3
import sqlite3
import os
import subprocess
import sys
from datetime import datetime
if len(sys.argv) > 1:
conn = sqlite3.connect(f'/tmp/{sys.argv[1]}.sqlite')
else:
conn = sqlite3.connect('database.sqlite')
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS files (filename TEXT, path TEXT, ext TEXT, last_access DATETIME, size INT, lines INT)")
cur.execute("CREATE UNIQUE INDEX IF NOT EXISTS idx_path ON files(path)")
cur.execute("CREATE INDEX IF NOT EXISTS idx_last_access ON files(last_access)")
print("Executando...")
for root, dirs, files in os.walk("."):
for name in files:
print(f"Processando {name}")
path = os.path.join(root, name)
stats = os.stat(path)
name_ext = os.path.splitext(name)
last_access = datetime.fromtimestamp(stats.st_atime)
lines = int(subprocess.check_output(['wc', '-l', path]).split()[0])
cur.execute("INSERT INTO files (filename, path, ext, last_access, size, lines) VALUES (?, ?, ?, ?, ?, ?)", (name_ext[0], path, name_ext[1], last_access, stats.st_size, lines))
conn.commit()
conn.close()
print("Feito!")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment