--- /dev/null
+require 'bundler'
+Bundler.require(:rake)
+
+require 'puppetlabs_spec_helper/rake_tasks'
+require 'puppet-lint/tasks/puppet-lint'
+
+Rake::Task[:lint].clear
+PuppetLint::RakeTask.new :lint do |config|
+ config.ignore_paths = ["spec/**/*.pp", "vendor/**/*.pp", "pkg/**/*.pp"]
+ config.log_format = '%{path}:%{linenumber}:%{KIND}: %{message}'
+ # TODO: remove this check once the relative config
+ # is supported by puppet-lint release
+ config.disable_checks = [ 'autoloader_layout' ]
+end
+
+# use librarian-puppet to manage fixtures instead of .fixtures.yml
+# offers more possibilities like explicit version management, forge downloads,...
+task :librarian_spec_prep do
+# sh "librarian-puppet install --path=spec/fixtures/modules/"
+ pwd = `pwd`.strip
+ # because we don't have librarian-puppet
+ unless File.directory?("#{pwd}/spec/fixtures/modules")
+ sh "mkdir -p #{pwd}/spec/fixtures/modules"
+ end
+ unless File.directory?("#{pwd}/spec/fixtures/modules/sysctl")
+ sh "ln -s #{pwd} #{pwd}/spec/fixtures/modules/sysctl"
+ end
+end
+task :spec_prep => :librarian_spec_prep
+
+
+task :default => [:spec, :lint]