Skip to content

Instantly share code, notes, and snippets.

@abhigenie92
Last active June 29, 2016 06:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save abhigenie92/1980cf21cf9f8d74eb21f9ddc3715c76 to your computer and use it in GitHub Desktop.
Save abhigenie92/1980cf21cf9f8d74eb21f9ddc3715c76 to your computer and use it in GitHub Desktop.
import os,re,pdb
## Get the repos
path='/var/lib/apt/lists/'
files=os.listdir(path)
release_files=[file for file in files if file.endswith('Release')]
origin_pattern=re.compile('Origin: (.*)\n')
suite_pattern=re.compile('Suite: (.*)\n')
skipped_release_files=[]
repos_to_add=[]
for release_file in release_files:
with open(path+release_file, 'r') as f:
read_data = f.read()
# parse to get origin and suite
origin_string=re.findall(origin_pattern,read_data)
suite_string=re.findall(suite_pattern,read_data)
try:
repo="\"%s:%s\";" %(origin_string[0].replace(',',r'\,'),
suite_string[0].replace(',',r'\,'))
repos_to_add.append(repo)
except IndexError:
skipped_release_files.append(release_file)
## Add the result from repos_to_add in /etc/apt/apt.conf.d/50unattended-upgrades
# checking if not already present
with open('/etc/apt/apt.conf.d/50unattended-upgrades','r') as f:
read_data=f.read()
# get everything before first };
raw_data=re.findall('[.\s\S]*};',read_data)
repos_already_present=re.findall('".*:.*";',raw_data[0])
repos_to_add=[repo for repo in repos_to_add if repo not in repos_already_present]
print (repos_to_add)
print ("\n\nSkipping files :")
for skipped_release_file in skipped_release_files:
print (skipped_release_file)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment