Merge branch 'master' of https://github.com/iksaif/euscan
Signed-off-by: volpino <fox91@anche.no>
This commit is contained in:
		@@ -1,9 +1,10 @@
 | 
				
			|||||||
import os
 | 
					import os
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.conf import settings
 | 
					from django.conf import settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _launch_command(cmd, logger=None):
 | 
					def _launch_command(cmd, env=None, logger=None):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Helper for launching shell commands inside tasks
 | 
					    Helper for launching shell commands inside tasks
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
@@ -11,7 +12,7 @@ def _launch_command(cmd, logger=None):
 | 
				
			|||||||
    import subprocess
 | 
					    import subprocess
 | 
				
			||||||
    import select
 | 
					    import select
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 | 
					    fp = subprocess.Popen(cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mask = select.EPOLLIN | select.EPOLLHUP | select.EPOLLERR
 | 
					    mask = select.EPOLLIN | select.EPOLLHUP | select.EPOLLERR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -51,7 +52,7 @@ def emerge_sync(logger):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    cmd = ["emerge", "--sync", "--root", settings.PORTAGE_ROOT,
 | 
					    cmd = ["emerge", "--sync", "--root", settings.PORTAGE_ROOT,
 | 
				
			||||||
           "--config-root", settings.PORTAGE_CONFIGROOT]
 | 
					           "--config-root", settings.PORTAGE_CONFIGROOT]
 | 
				
			||||||
    return _launch_command(cmd, logger)
 | 
					    return _launch_command(cmd, logger=logger)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def emerge_metadata(logger):
 | 
					def emerge_metadata(logger):
 | 
				
			||||||
@@ -60,7 +61,7 @@ def emerge_metadata(logger):
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    cmd = ["emerge", "--metadata", "--root", settings.PORTAGE_ROOT,
 | 
					    cmd = ["emerge", "--metadata", "--root", settings.PORTAGE_ROOT,
 | 
				
			||||||
           "--config-root", settings.PORTAGE_CONFIGROOT]
 | 
					           "--config-root", settings.PORTAGE_CONFIGROOT]
 | 
				
			||||||
    return _launch_command(cmd, logger)
 | 
					    return _launch_command(cmd, logger=logger)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def layman_sync(logger, cache=True):
 | 
					def layman_sync(logger, cache=True):
 | 
				
			||||||
@@ -70,20 +71,23 @@ def layman_sync(logger, cache=True):
 | 
				
			|||||||
    from layman import Layman
 | 
					    from layman import Layman
 | 
				
			||||||
    import shutil
 | 
					    import shutil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    l = Layman(config=settings.LAYMAN_CONFIG)
 | 
					    l = Layman(stderr=sys.__stderr__, stdin=sys.__stdin__, stdout=sys.__stdout__,
 | 
				
			||||||
 | 
					               config=settings.LAYMAN_CONFIG, root="/")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    installed_overlays = l.get_installed()
 | 
					    installed_overlays = l.get_installed()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for overlay in installed_overlays:
 | 
					    for overlay in installed_overlays:
 | 
				
			||||||
        logger.info('Cleaning cache for overlay %s...' % overlay)
 | 
					        logger.info('Cleaning cache for overlay %s...' % overlay)
 | 
				
			||||||
        overlay_path = os.path.join(l.config['storage'], overlay)
 | 
					        overlay_path = os.path.join(l.config['storage'], overlay)
 | 
				
			||||||
        shutil.rmtree(os.path.join(overlay_path, 'metadata/cache'), True)
 | 
					        shutil.rmtree(os.path.join(overlay_path, 'metadata'), True)
 | 
				
			||||||
        shutil.rmtree(os.path.join(overlay_path, 'metadata/md5-cache'), True)
 | 
					        shutil.rmtree(os.path.join(overlay_path, 'profiles'), True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # FIXME, try to find a way to log layman output...
 | 
					    # FIXME, try to find a way to log layman output...
 | 
				
			||||||
    #l.sync(installed_overlays, output_results=False)
 | 
					    #l.sync(installed_overlays, output_results=False)
 | 
				
			||||||
 | 
					    env = dict(os.environ)
 | 
				
			||||||
 | 
					    env['ROOT'] = '/'
 | 
				
			||||||
    cmd = ['layman', '-S', '--config', settings.LAYMAN_CONFIG]
 | 
					    cmd = ['layman', '-S', '--config', settings.LAYMAN_CONFIG]
 | 
				
			||||||
    _launch_command(cmd, logger)
 | 
					    _launch_command(cmd, env=env, logger=logger)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cmd = ['egencache', '--jobs', "%s" % settings.EGENCACHE_JOBS,
 | 
					    cmd = ['egencache', '--jobs', "%s" % settings.EGENCACHE_JOBS,
 | 
				
			||||||
           '--rsync', '--config-root', settings.PORTAGE_CONFIGROOT,
 | 
					           '--rsync', '--config-root', settings.PORTAGE_CONFIGROOT,
 | 
				
			||||||
@@ -95,7 +99,7 @@ def layman_sync(logger, cache=True):
 | 
				
			|||||||
        repo_path = os.path.join(overlay_path, 'profiles/repo_name')
 | 
					        repo_path = os.path.join(overlay_path, 'profiles/repo_name')
 | 
				
			||||||
        if not os.path.exists(repo_path):
 | 
					        if not os.path.exists(repo_path):
 | 
				
			||||||
            continue
 | 
					            continue
 | 
				
			||||||
        _launch_command(cmd + ['--repo', overlay], logger)
 | 
					        _launch_command(cmd + ['--repo', overlay], logger=logger)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def eix_update(logger):
 | 
					def eix_update(logger):
 | 
				
			||||||
@@ -103,7 +107,7 @@ def eix_update(logger):
 | 
				
			|||||||
    Launches eix-update
 | 
					    Launches eix-update
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    cmd = ["eix-update"]
 | 
					    cmd = ["eix-update"]
 | 
				
			||||||
    return _launch_command(cmd, logger)
 | 
					    return _launch_command(cmd, logger=logger)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def update_portage_trees(logger=None):
 | 
					def update_portage_trees(logger=None):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -185,11 +185,18 @@ def update_portage(packages=None):
 | 
				
			|||||||
        prefetch=True
 | 
					        prefetch=True
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    scan_metadata(packages=None, populate=True)
 | 
					    scan_metadata(packages=None, populate=True)
 | 
				
			||||||
    if updated_packages:
 | 
					
 | 
				
			||||||
 | 
					    if not updated_packages:
 | 
				
			||||||
 | 
					        # Simple/Fast path
 | 
				
			||||||
 | 
					        update_counters(fast=False)
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
        group_chunks(scan_upstream, updated_packages,
 | 
					        group_chunks(scan_upstream, updated_packages,
 | 
				
			||||||
                     settings.TASKS_UPSTREAM_GROUPS,
 | 
					                     settings.TASKS_UPSTREAM_GROUPS,
 | 
				
			||||||
                         purge_versions=True)()
 | 
					                     purge_versions=True) |
 | 
				
			||||||
    update_counters(fast=False)
 | 
					        update_counters.si(fast=False)
 | 
				
			||||||
 | 
					    )()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    """ Currently broken
 | 
					    """ Currently broken
 | 
				
			||||||
    update_portage_trees()
 | 
					    update_portage_trees()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user