File: download_package.py

package info (click to toggle)
librepo 1.14.5-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 4,084 kB
  • sloc: ansic: 17,669; python: 3,748; xml: 581; sh: 113; makefile: 58
file content (53 lines) | stat: -rwxr-xr-x 1,388 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/env python3

"""
librepo - download a package
"""

import os
import sys
import shutil
from pprint import pprint

import librepo

DESTDIR = "downloaded_metadata"
PROGRESSBAR_LEN = 40
finished = False

def callback(data, total_to_download, downloaded):
    """Progress callback"""
    global finished

    if total_to_download != downloaded:
        finished = False

    if total_to_download <= 0 or finished == True:
        return

    completed = int(downloaded / (total_to_download / PROGRESSBAR_LEN))
    print("%30s: [%s%s] %8s/%8s\r" % (data, '#'*completed, '-'*(PROGRESSBAR_LEN-completed), int(downloaded), int(total_to_download)), )
    sys.stdout.flush()

    if total_to_download == downloaded and not finished:
        print()
        finished = True
        return

if __name__ == "__main__":

    pkgs = [
        ("ImageMagick-djvu", "Packages/i/ImageMagick-djvu-6.7.5.6-3.fc17.i686.rpm"),
        ("i2c-tools-eepromer", "Packages/i/i2c-tools-eepromer-3.1.0-1.fc17.i686.rpm")
    ]

    h = librepo.Handle()
    h.setopt(librepo.LRO_URLS, ["http://ftp.linux.ncsu.edu/pub/fedora/linux/releases/17/Everything/i386/os/"])
    h.setopt(librepo.LRO_REPOTYPE, librepo.LR_YUMREPO)
    h.setopt(librepo.LRO_PROGRESSCB, callback)
    h.setopt(librepo.LRO_PROGRESSDATA, "")

    for pkg_name, pkg_url in pkgs:
        h.progressdata = pkg_name
        h.download(pkg_url)