#!/usr/bin/env python
import os, sqlite3
# -------------- constants -----------------------------------------
profilAppMain=os.path.join(os.environ["HOME"], ".mozilla/firefox")
profilUser= os.environ["USER"]
profilApp = os.path.join(profilUser,profilAppMain)
# -------------- functions -----------------------------------------
def searchProfil(profilApp):
"all firefox profiles"
for profil in os.listdir(profilApp):
profilFull=os.path.join(profilApp, profil)
searchSqlite(profilFull)
def searchSqlite(profil):
"all sqlite file in each firefox profile"
if not os.path.isdir(profil):
return
sq=[os.path.join(profil,s) for s in os.listdir(profil) if s.endswith(".sqlite")]
print "\n..."+profil[len(profilUser):]
for s in sq:
dirName, fileName=os.path.split(s)
conn = sqlite3.connect(s)
old=os.path.getsize(s)
print fileName+":",
try:
c=conn.cursor()
c.execute("VACUUM") # this is the thing
c.close()
print "done.",
new=os.path.getsize(s)
print new*1.0/old*100,"%"
except:
print "error."
# ----------------- main -------------------------------------------
if __name__=="__main__":
if os.path.isdir(profilApp):
searchProfil(profilApp)
else:
print "Not exist:", profilApp