files/install
e60d63aa
 #!/usr/bin/env python3
 
 
 import os
 import sys
 import configparser
 import urllib.request
 import json
 
 
 FIREFOX_PATH  = os.path.expanduser('~/.mozilla/firefox')
 PROFILES_PATH = os.path.join(FIREFOX_PATH, 'profiles.ini')
 API_BASE_URL  = 'https://services.addons.mozilla.org/api/v4/addons/addon'
 
 
 extension = sys.argv[1]
 
 
 profiles = configparser.ConfigParser()
 profiles.optionxform = str
 profiles.read(PROFILES_PATH)
 for section in profiles.sections():
     if section.startswith('Profile'):
         profile = dict(profiles.items(section))
         if int(profile['Default']):
             profile_path = profile['Path']
             if int(profile.get('IsRelative', '0')):
                 profile_path = os.path.join(FIREFOX_PATH, profile_path)
 
 
 with urllib.request.urlopen(f'{API_BASE_URL}/{extension}') as response:
     info = json.loads(response.read())
 guid = info['guid']
 url = info['current_version']['files'][0]['url']
 path = os.path.join(profile_path, 'extensions', f'{guid}.xpi')
 os.makedirs(os.path.dirname(path), exist_ok=True)
 if not os.path.exists(path):
     urllib.request.urlretrieve(url, path)
     print(extension)