| 1531 | end |
| 1532 | |
| 1533 | def apt_update(base_dir, incoming_dir, merged_dir) |
| 1534 | apt_targets.each do |distribution, code_name, component| |
| 1535 | distribution_dir = "#{incoming_dir}/#{distribution}" |
| 1536 | pool_dir = "#{distribution_dir}/pool/#{code_name}" |
| 1537 | next unless File.exist?(pool_dir) |
| 1538 | dists_dir = "#{distribution_dir}/dists/#{code_name}" |
| 1539 | rm_rf(dists_dir, verbose: verbose?) |
| 1540 | generate_apt_release(dists_dir, code_name, component, "source") |
| 1541 | apt_architectures.each do |architecture| |
| 1542 | generate_apt_release(dists_dir, code_name, component, architecture) |
| 1543 | end |
| 1544 | |
| 1545 | generate_conf_file = Tempfile.new("apt-ftparchive-generate.conf") |
| 1546 | File.open(generate_conf_file.path, "w") do |conf| |
| 1547 | conf.puts(generate_apt_ftp_archive_generate_conf(code_name, |
| 1548 | component)) |
| 1549 | end |
| 1550 | cd(distribution_dir, verbose: verbose?) do |
| 1551 | sh("apt-ftparchive", |
| 1552 | "generate", |
| 1553 | generate_conf_file.path, |
| 1554 | out: default_output, |
| 1555 | verbose: verbose?) |
| 1556 | end |
| 1557 | |
| 1558 | Dir.glob("#{dists_dir}/Release*") do |release| |
| 1559 | rm_f(release, verbose: verbose?) |
| 1560 | end |
| 1561 | Dir.glob("#{distribution_dir}/*.db") do |db| |
| 1562 | rm_f(db, verbose: verbose?) |
| 1563 | end |
| 1564 | release_conf_file = Tempfile.new("apt-ftparchive-release.conf") |
| 1565 | File.open(release_conf_file.path, "w") do |conf| |
| 1566 | conf.puts(generate_apt_ftp_archive_release_conf(code_name, |
| 1567 | component)) |
| 1568 | end |
| 1569 | release_file = Tempfile.new("apt-ftparchive-release") |
| 1570 | sh("apt-ftparchive", |
| 1571 | "-c", release_conf_file.path, |
| 1572 | "release", |
| 1573 | dists_dir, |
| 1574 | out: release_file.path, |
| 1575 | verbose: verbose?) |
| 1576 | mv(release_file.path, "#{dists_dir}/Release", verbose: verbose?) |
| 1577 | |
| 1578 | if base_dir and merged_dir |
| 1579 | base_dists_dir = "#{base_dir}/#{distribution}/dists/#{code_name}" |
| 1580 | merged_dists_dir = "#{merged_dir}/#{distribution}/dists/#{code_name}" |
| 1581 | rm_rf(merged_dists_dir) |
| 1582 | if Dir.exist?(base_dists_dir) and Dir.empty?(base_dists_dir) |
| 1583 | mkdir_p(File.dirname(merged_dists_dir)) |
| 1584 | cp_r(dists_dir, File.dirname(merged_dists_dir)) |
| 1585 | else |
| 1586 | merger = APTDistsMerge::Merger.new(base_dists_dir, |
| 1587 | dists_dir, |
| 1588 | merged_dists_dir) |
| 1589 | merger.merge |
| 1590 | end |