chiark / gitweb /
makebuildserver: allow setting apt mirror from command line
authorHans-Christoph Steiner <hans@eds.org>
Wed, 26 Aug 2015 11:26:22 +0000 (13:26 +0200)
committerHans-Christoph Steiner <hans@eds.org>
Wed, 26 Aug 2015 12:46:54 +0000 (14:46 +0200)
On some setups, using a custom apt mirror is essential, so this adds a
command line flag to override the default one:
http://ftp.uk.debian.org/debian/

For example, someone who runs a local mirror for offline and low bandwidth
situations.

This uses a % rather than a .format() to avoid escaping { and }, which have
meaning when using .format().

buildserver/cookbooks/fdroidbuild-general/recipes/default.rb
makebuildserver

index 0a42dc367cdccc00e55b8c74dc9c2cce4581ce25..0b98cc598d7967a66ac5664c6e3e16fee52c63cf 100644 (file)
@@ -1,5 +1,10 @@
 
 user = node[:settings][:user]
+debian_mirror = node[:settings][:debian_mirror]
+
+execute 'set_debian_mirror' do
+  command "sed -i 's,http://ftp.uk.debian.org/debian/,#{debian_mirror},g' /etc/apt/sources.list"
+end
 
 execute "apt-get-update" do
   command "apt-get update"
index cdac06fa31465996ea385b64295f08a180e992a9..1895c42144bb8487072ed4602a683fef6f8a09f9 100755 (executable)
@@ -41,6 +41,8 @@ parser.add_option("-v", "--verbose", action="store_true", default=False,
                   help="Spew out even more information than normal")
 parser.add_option("-c", "--clean", action="store_true", default=False,
                   help="Build from scratch, rather than attempting to update the existing server")
+parser.add_option("--debian-mirror", default="http://ftp.uk.debian.org/debian/",
+                  help="Use the specified Debian mirror in the box's /etc/apt/sources.list.")
 options, args = parser.parse_args()
 
 config = {}
@@ -199,6 +201,7 @@ if 'aptproxy' in config and config['aptproxy']:
     vagrantfile += """
   config.vm.provision :shell, :inline => 'sudo echo "Acquire::http {{ Proxy \\"{0}\\"; }};" > /etc/apt/apt.conf.d/02proxy && sudo apt-get update'
 """.format(config['aptproxy'])
+
 vagrantfile += """
   config.vm.provision :chef_solo do |chef|
     chef.cookbooks_path = "cookbooks"
@@ -207,6 +210,7 @@ vagrantfile += """
       :settings => {
         :sdk_loc => "/home/vagrant/android-sdk",
         :ndk_loc => "/home/vagrant/android-ndk",
+        :debian_mirror => "%s",
         :user => "vagrant"
       }
     }
@@ -217,7 +221,7 @@ vagrantfile += """
     chef.add_recipe "kivy"
   end
 end
-"""
+""" % (options.debian_mirror)
 
 # Check against the existing Vagrantfile, and if they differ, we need to
 # create a new box: