| 1785 | end |
| 1786 | |
| 1787 | def define_apt_recover_tasks |
| 1788 | namespace :apt do |
| 1789 | namespace :recover do |
| 1790 | desc "Download repositories" |
| 1791 | task :download do |
| 1792 | apt_targets.each do |distribution, code_name, component| |
| 1793 | not_checksum_pattern = /.+(?<!\.asc|\.sha512)\z/ |
| 1794 | code_name_dir = |
| 1795 | "#{apt_recover_repositories_dir}/#{distribution}/pool/#{code_name}" |
| 1796 | pattern = not_checksum_pattern |
| 1797 | download_distribution(:artifactory, |
| 1798 | distribution, |
| 1799 | code_name_dir, |
| 1800 | :base, |
| 1801 | pattern: pattern, |
| 1802 | prefix: "pool/#{code_name}") |
| 1803 | end |
| 1804 | end |
| 1805 | |
| 1806 | desc "Update repositories" |
| 1807 | task :update do |
| 1808 | apt_update(nil, apt_recover_repositories_dir, nil) |
| 1809 | apt_targets.each do |distribution, code_name, component| |
| 1810 | dists_dir = |
| 1811 | "#{apt_recover_repositories_dir}/#{distribution}/dists/#{code_name}" |
| 1812 | next unless File.exist?(dists_dir) |
| 1813 | sign_dir("#{distribution} #{code_name}", |
| 1814 | dists_dir) |
| 1815 | end |
| 1816 | end |
| 1817 | |
| 1818 | desc "Upload repositories" |
| 1819 | task :upload do |
| 1820 | apt_distributions.each do |distribution| |
| 1821 | dists_dir = |
| 1822 | "#{apt_recover_repositories_dir}/#{distribution}/dists" |
| 1823 | uploader = ArtifactoryUploader.new(api_key: artifactory_api_key, |
| 1824 | destination_prefix: "dists", |
| 1825 | distribution: distribution, |
| 1826 | source: dists_dir, |
| 1827 | staging: staging?) |
| 1828 | uploader.upload |
| 1829 | end |
| 1830 | end |
| 1831 | end |
| 1832 | |
| 1833 | desc "Recover APT repositories" |
| 1834 | apt_recover_tasks = [ |
| 1835 | "apt:recover:download", |
| 1836 | "apt:recover:update", |
| 1837 | "apt:recover:upload", |
| 1838 | ] |
| 1839 | task :recover => apt_recover_tasks |
| 1840 | end |
| 1841 | end |
| 1842 | |
| 1843 | def define_apt_tasks |
| 1844 | define_apt_staging_tasks |