# -*- coding: utf-8 -*-
from setuphelpers import *
import os
from jinja2 import Environment , FileSystemLoader
uninstallkey = [ ]
variables = {
' firefox_config_url ' : ' https://server/mcd/firefox.cfg ' ,
' firefox_config_append_domain ' : ' '
}
# Read local variables file if available
if isfile ( makepath ( programfiles32 , ' wapt ' , ' private ' , ' symetric.txt ' ) ) and isfile ( makepath ( programfiles32 , ' wapt ' , ' private ' , ' variables.txt ' ) ) :
print ( ' Reading local encrypted variables file ' )
from cryptography . fernet import Fernet
import yaml
f = Fernet ( open ( makepath ( programfiles32 , ' wapt ' , ' private ' , ' symetric.txt ' ) , ' r ' ) . read ( ) )
variables . update ( yaml . safe_load ( f . decrypt ( open ( makepath ( programfiles32 , ' wapt ' , ' private ' , ' variables.txt ' ) , ' r ' ) . read ( ) ) ) )
def install ( ) :
filecopyto ( ' autoconf.js ' , makepath ( programfiles , ' Mozilla Firefox ' , ' defaults ' , ' pref ' ) )
filecopyto ( ' override.ini ' , makepath ( programfiles , ' Mozilla Firefox ' ) )
jinja2 = Environment (
loader = FileSystemLoader ( os . getcwd ( ) ) ,
trim_blocks = True
)
open ( makepath ( programfiles , ' Mozilla Firefox ' , ' firefox.cfg ' ) , ' w ' ) . write (
jinja2 . get_template ( ' firefox.cfg.j2 ' ) . render (
firefox_config_url = variables [ ' firefox_config_url ' ] ,
firefox_config_append_domain = variables [ ' firefox_config_append_domain ' ]
)
)
def uninstall ( ) :
remove_file ( makepath ( programfiles , ' Mozilla Firefox ' , ' defaults ' , ' pref ' , ' autoconf.js ' ) )
remove_file ( makepath ( programfiles , ' Mozilla Firefox ' , ' override.ini ' ) )
remove_file ( makepath ( programfiles , ' Mozilla Firefox ' , ' firefox.cfg ' ) )
def audit ( ) :
if (
not isfile ( makepath ( programfiles , ' Mozilla Firefox ' , ' defaults ' , ' pref ' , ' autoconf.js ' ) ) or
not isfile ( makepath ( programfiles , ' Mozilla Firefox ' , ' override.ini ' ) ) or
not isfile ( makepath ( programfiles , ' Mozilla Firefox ' , ' firefox.cfg ' ) )
) :
print ( ' At least one config file is missing ' )
return " ERROR "
return " OK "