merged cont.
[opensuse:yast-rest-service.git] / webservice / Rakefile
1 #--
2 # Copyright (c) 2009, 2010 Novell, Inc.
3
4 # All Rights Reserved.
5
6 # This program is free software; you can redistribute it and/or modify it
7 # under the terms of version 2 of the GNU General Public License
8 # as published by the Free Software Foundation.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, contact Novell, Inc.
17
18 # To contact Novell about this file by physical or electronic mail,
19 # you may find current contact information at www.novell.com
20 #++
21 #
22 # Add your own tasks in files placed in lib/tasks ending in .rake,
23 # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
24
25 require(File.join(File.dirname(__FILE__), 'config', 'boot'))
26 $:.unshift File.join(File.dirname(__FILE__), "..", "webservice-tasks", "lib")
27
28 require 'rake'
29 require 'rake/testtask'
30 require 'rake/rdoctask'
31
32 #include in doc:app also shared test enhancements for plugins
33 #FIXME find way how to change original rails task app:doc we only need include some files to it
34 namespace :doc do
35   Rake::RDocTask.new("app") { |rdoc|
36     rdoc.rdoc_dir = 'doc/app'
37     rdoc.title    = "Rails Application Documentation"
38     rdoc.options << '--line-numbers' << '--inline-source'
39     rdoc.rdoc_files.include('doc/README_FOR_APP')
40     rdoc.rdoc_files.include('app/**/*.rb')
41     rdoc.rdoc_files.include('lib/**/*.rb')
42 #include shared test functionality in documentation
43     rdoc.rdoc_files.include('test/plugin_basic_tests.rb')
44   }
45 end
46
47 # load the shared rake files from the package itself
48 # skip 'deploy_local' task, it's redefined here
49 require 'tasks/webservice_tasks'
50 WebserviceTasks.loadTasks(:exclude => ["deploy_local.rake"])
51
52 # this call also loads WebserviceTasks but the second call is ignored there
53 # so this 'require' must be called _after_ WebserviceTasks.loadTasks
54 require 'tasks/rails'
55
56 require 'fileutils'
57
58 def grant(user, right)
59   sh "/usr/bin/polkit-auth --user #{user} --grant #{right} ||:"
60 end
61
62 desc "Deploy for development - run db:migrate, create basic dirs and install grantwebyastrights."
63 task :deploy_local, [:user] => :"db:migrate" do |t, args|
64   args.with_defaults :user => "yastws"
65   FileUtils.mkdir_p "/etc/webyast"
66   FileUtils.mkdir_p "/var/lib/yastws"
67   FileUtils.mkdir_p "/usr/share/yastws"
68   FileUtils.install "package/grantwebyastrights", "/usr/sbin", :mode => 0555
69   mkdir_p "/etc/dbus-1/system.d/"
70   cp_r    "package/webyast.permissions.conf", "/etc/dbus-1/system.d/"
71   cp_r    "package/webyastPermissionsService.rb", "/usr/sbin/"
72   chmod  0744, "/usr/sbin/webyastPermissionsService.rb"
73   mkdir_p "/usr/share/dbus-1/system-services/"
74   cp_r    "package/webyast.permissions.service.service", "/usr/share/dbus-1/system-services/"
75   FileUtils.mkdir_p "/usr/share/PolicyKit/policy/"
76   FileUtils.cp_r    "package/org.opensuse.yast.permissions.policy",  "/usr/share/PolicyKit/policy/"
77   if args.user == "yastws"
78     # add user yastws
79     sh "/usr/sbin/groupadd -r yastws ||:" #&>/dev/null ||:
80     sh "/usr/sbin/useradd  -g yastws -s /bin/false -r -c 'User for YaST-Webservice' -d /var/lib/yastws yastws ||:"
81   end
82   # grant rights to him
83   grant args.user, "org.opensuse.yast.module-manager.import"
84   grant args.user, "org.freedesktop.policykit.read"
85   grant args.user, "org.freedesktop.packagekit.system-update"
86 end
87
88 #set constant to disable initializer for Delayed Job
89 task :environment => :disable_initializer
90
91 task :disable_initializer do
92   ENV["DISABLE_INITIALIZER"] = 'true'
93 end
94
95 namespace :sass do
96   desc 'Updates stylesheets if necessary from their Sass templates.'
97   task :update do
98     require 'sass/plugin'
99     Sass::Plugin.options = { :template_location => "app/sass" }
100     Sass::Plugin.update_stylesheets
101     #run css minifier task after sass to css converter
102     Rake::Task['css:min'].invoke
103   end
104 end