whitespaces
[coquelicot.git] / Rakefile
1 # Coquelicot: "one-click" file sharing with a focus on users' privacy.
2 # Copyright © 2010-2013 potager.org <jardiniers@potager.org>
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU Affero General Public License as
6 # published by the Free Software Foundation, either version 3 of the
7 # License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU Affero General Public License for more details.
13 #
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
17 require 'rubygems'
18 require 'bundler'
19 Bundler.require(:default, :development)
20 Bundler.setup
21
22 require 'bundler/gem_tasks'
23 require 'haml/magic_translations/tasks'
24
25 Haml::MagicTranslations::Tasks::UpdatePoFiles.new(:updatepo) do |t|
26   t.text_domain = 'coquelicot'
27   t.files = Dir.glob('views/**/*.{rb,haml}') + Dir.glob('lib/coquelicot/**/*.rb')
28   t.app_version = 'coquelicot 1.0.0'
29 end
30
31 task :create_archive do
32   spec = Gem::Specification.load('coquelicot.gemspec')
33
34   filename = "coquelicot-#{spec.version}.tar.gz"
35
36   File.open(filename, 'wb') do |archive|
37     Zlib::GzipWriter.wrap(archive) do |gzipped|
38       Gem::Package::TarWriter.new(gzipped) do |writer|
39         spec.files.each do |file|
40           next if File.directory? file
41           stat = File.stat(file)
42           mode = stat.mode & 0777
43           size = stat.size
44           writer.add_file_simple(file, mode, size) do |tar_io|
45             tar_io.write(open(file, 'rb') { |f| f.read })
46           end
47         end
48         # Add empty directories where there is place holders
49         Dir.glob('**/.placeholder') do |placeholder|
50           writer.mkdir File.dirname(placeholder), 0700
51         end
52       end
53     end
54   end
55 end