aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2016-06-14 19:14:10 +0200
committerGuido Günther <agx@sigxcpu.org>2016-06-14 19:14:10 +0200
commitbe945de33c794a449c5fcbf991db4bf0d49b1fb7 (patch)
tree477c5f4b708e37200f9042e206e4d7874d2eeae7 /lib
Initial commitHEADmaster
Diffstat (limited to 'lib')
-rw-r--r--lib/foreman_image_upload.rb4
-rw-r--r--lib/foreman_image_upload/engine.rb73
-rw-r--r--lib/foreman_image_upload/version.rb3
-rw-r--r--lib/tasks/foreman_image_upload_tasks.rake45
4 files changed, 125 insertions, 0 deletions
diff --git a/lib/foreman_image_upload.rb b/lib/foreman_image_upload.rb
new file mode 100644
index 0000000..8636557
--- /dev/null
+++ b/lib/foreman_image_upload.rb
@@ -0,0 +1,4 @@
+require 'foreman_image_upload/engine'
+
+module ForemanImageUpload
+end
diff --git a/lib/foreman_image_upload/engine.rb b/lib/foreman_image_upload/engine.rb
new file mode 100644
index 0000000..cd285b2
--- /dev/null
+++ b/lib/foreman_image_upload/engine.rb
@@ -0,0 +1,73 @@
+require 'deface'
+
+module ForemanImageUpload
+ class Engine < ::Rails::Engine
+ engine_name 'foreman_image_upload'
+
+ config.autoload_paths += Dir["#{config.root}/app/controllers/concerns"]
+ config.autoload_paths += Dir["#{config.root}/app/helpers/concerns"]
+ config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
+ config.autoload_paths += Dir["#{config.root}/app/overrides"]
+
+ # Add any db migrations
+ initializer 'foreman_image_upload.load_app_instance_data' do |app|
+ ForemanImageUpload::Engine.paths['db/migrate'].existent.each do |path|
+ app.config.paths['db/migrate'] << path
+ end
+ end
+
+ initializer 'foreman_image_upload.register_plugin', :before => :finisher_hook do |_app|
+ Foreman::Plugin.register :foreman_image_upload do
+ requires_foreman '>= 1.4'
+
+ # Add a new role called 'ForemanImageUpload' if it doesn't exist
+ #role 'ForemanImageUpload', [:view_foreman_image_upload]
+
+ # add dashboard widget
+ widget 'foreman_image_upload_widget', name: N_('Foreman plugin template widget'), sizex: 4, sizey: 1
+ end
+ end
+
+ # Precompile any JS or CSS files under app/assets/
+ # If requiring files from each other, list them explicitly here to avoid precompiling the same
+ # content twice.
+ assets_to_precompile =
+ Dir.chdir(root) do
+ Dir['app/assets/javascripts/**/*', 'app/assets/stylesheets/**/*'].map do |f|
+ f.split(File::SEPARATOR, 4).last
+ end
+ end
+ initializer 'foreman_image_upload.assets.precompile' do |app|
+ app.config.assets.precompile += assets_to_precompile
+ end
+ initializer 'foreman_image_upload.configure_assets', group: :assets do
+ SETTINGS[:foreman_image_upload] = { assets: { precompile: assets_to_precompile } }
+ end
+
+ # Include concerns in this config.to_prepare block
+ config.to_prepare do
+ begin
+ ::ImageInfo.send :include, ::ActiveModel::AttributeMethods
+ ::ImageInfo.send :include, ::ActiveModel::Conversion
+ ::ImageInfo.send :extend, ::ActiveModel::Naming
+ #::ImageInfo.send :include, ForemanImageUplod::ImageInfo
+
+ ::Foreman::Model::Libvirt.send :include, LibvirtExtensions
+ rescue => e
+ Rails.logger.warn "ForemanImageUpload: skipping engine hook (#{e})"
+ end
+ end
+
+ rake_tasks do
+ Rake::Task['db:seed'].enhance do
+ ForemanImageUpload::Engine.load_seed
+ end
+ end
+
+ initializer 'foreman_image_upload.register_gettext', after: :load_config_initializers do |_app|
+ locale_dir = File.join(File.expand_path('../../..', __FILE__), 'locale')
+ locale_domain = 'foreman_image_upload'
+ Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
+ end
+ end
+end
diff --git a/lib/foreman_image_upload/version.rb b/lib/foreman_image_upload/version.rb
new file mode 100644
index 0000000..49cb9eb
--- /dev/null
+++ b/lib/foreman_image_upload/version.rb
@@ -0,0 +1,3 @@
+module ForemanImageUpload
+ VERSION = '0.0.1'
+end
diff --git a/lib/tasks/foreman_image_upload_tasks.rake b/lib/tasks/foreman_image_upload_tasks.rake
new file mode 100644
index 0000000..dd85dd5
--- /dev/null
+++ b/lib/tasks/foreman_image_upload_tasks.rake
@@ -0,0 +1,45 @@
+# Tasks
+namespace :foreman_image_upload do
+ namespace :example do
+ desc 'Example Task'
+ task task: :environment do
+ # Task goes here
+ end
+ end
+end
+
+# Tests
+namespace :test do
+ desc 'Test ForemanImageUpload'
+ Rake::TestTask.new(:foreman_image_upload) do |t|
+ test_dir = File.join(File.dirname(__FILE__), '../..', 'test')
+ t.libs << ['test', test_dir]
+ t.pattern = "#{test_dir}/**/*_test.rb"
+ t.verbose = true
+ t.warning = false
+ end
+end
+
+namespace :foreman_image_upload do
+ task :rubocop do
+ begin
+ require 'rubocop/rake_task'
+ RuboCop::RakeTask.new(:rubocop_foreman_image_upload) do |task|
+ task.patterns = ["#{ForemanImageUpload::Engine.root}/app/**/*.rb",
+ "#{ForemanImageUpload::Engine.root}/lib/**/*.rb",
+ "#{ForemanImageUpload::Engine.root}/test/**/*.rb"]
+ end
+ rescue
+ puts 'Rubocop not loaded.'
+ end
+
+ Rake::Task['rubocop_foreman_image_upload'].invoke
+ end
+end
+
+Rake::Task[:test].enhance ['test:foreman_image_upload']
+
+load 'tasks/jenkins.rake'
+if Rake::Task.task_defined?(:'jenkins:unit')
+ Rake::Task['jenkins:unit'].enhance ['test:foreman_image_upload', 'foreman_image_upload:rubocop']
+end