コード例 #1
0
ファイル: api.py プロジェクト: hknyldz/pisitools
def snapshot():
    """
    Takes snapshot of the system packages. The snapshot is only a record of which packages are currently
    installed. The record is kept by pisilinux history mechanism as it works automatically on install, remove
    and upgrade operations.
    """

    installdb = pisilinux.db.installdb.InstallDB()
    historydb = pisilinux.db.historydb.HistoryDB()
    historydb.create_history("snapshot")

    li = installdb.list_installed()
    progress = ctx.ui.Progress(len(li))

    processed = 0
    for name in installdb.list_installed():
        package = installdb.get_package(name)
        historydb.add_package(pkgBefore=package, operation="snapshot")
        # Save changed config files of the package in snapshot
        for f in installdb.get_files(name).list:
            if f.type == "config" and pisilinux.util.config_changed(f):
                fpath = pisilinux.util.join_path(ctx.config.dest_dir(), f.path)
                historydb.save_config(name, fpath)

        processed += 1
        ctx.ui.display_progress(operation = "snapshot",
                                percent = progress.update(processed),
                                info = _("Taking snapshot of the system"))

    historydb.update_history()
コード例 #2
0
ファイル: api.py プロジェクト: hknyldz/pisitools
def list_upgradable():
    """
    Return a list of packages that are upgraded in the repository -> list_of_strings
    """
    installdb = pisilinux.db.installdb.InstallDB()
    is_upgradable = pisilinux.operations.upgrade.is_upgradable

    upgradable = list(filter(is_upgradable, installdb.list_installed()))
    # replaced packages can not pass is_upgradable test, so we add them manually
    upgradable.extend(list_replaces())

    # consider also blacklist filtering
    upgradable = pisilinux.blacklist.exclude_from(upgradable, ctx.const.blacklist)

    return upgradable