#!/usr/bin/python3 -u

import time
import apt
from shutil import copy
from os.path import join

from UpdateManager.Core.MetaRelease import MetaReleaseCore
from DistUpgrade.DistUpgradeFetcherCore import DistUpgradeFetcherCore
from DistUpgrade.utils import init_proxy

from pyeole.i18n import i18n
from pyeole.ihm import print_title

tmp_dir = '/tmp/Upgrade-Auto'

_ = i18n('update-manager')


class EOLEDistUpgradeFetcherCore(DistUpgradeFetcherCore):
    def verifyDistUprader(self, *args, **kwargs):
        copy(join(tmp_dir, 'DistUpgradeViewEOLE.py'), self.tmpdir)
        copy(join(self.tmpdir, 'utils.py'), join(self.tmpdir, 'old_utils.py'))
        copy(join(tmp_dir, 'utils.py'), self.tmpdir)
        return super(EOLEDistUpgradeFetcherCore, self).verifyDistUprader(*args, **kwargs)


if __name__ == "__main__":
    init_proxy()
    m = MetaReleaseCore(useDevelopmentRelease=False,
                        useProposed=False)
    # this will timeout eventually
    while m.downloading:
        time.sleep(0.5)
    progress = apt.progress.text.AcquireProgress()
    fetcher = EOLEDistUpgradeFetcherCore(new_dist=m.new_dist,
                                         progress=progress)
    fetcher.run_options += ["--mode=server",
                            "--frontend=DistUpgradeViewEOLE",
                            ]
    print_title(_("Upgrading server"))
    fetcher.run()
    # all lines below will not be executed
