Fix #3653: Add a doctor helper to test pwd's.
This commit is contained in:
parent
e4e14e8860
commit
ae11cae659
|
@ -30,6 +30,7 @@ module Jekyll
|
||||||
|
|
||||||
def healthy?(site)
|
def healthy?(site)
|
||||||
[
|
[
|
||||||
|
fsnotify_buggy?(site),
|
||||||
!deprecated_relative_permalinks(site),
|
!deprecated_relative_permalinks(site),
|
||||||
!conflicting_urls(site)
|
!conflicting_urls(site)
|
||||||
].all?
|
].all?
|
||||||
|
@ -59,8 +60,23 @@ module Jekyll
|
||||||
conflicting_urls
|
conflicting_urls
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
def fsnotify_buggy?(site)
|
||||||
|
return true if !Utils::Platforms.osx?
|
||||||
|
if Dir.pwd != `pwd`.strip
|
||||||
|
Jekyll.logger.error " " + <<-STR.strip.gsub(/\n\s+/, "\n ")
|
||||||
|
We have detected that there might be trouble using fsevent on your
|
||||||
|
operating system, you can read https://github.com/thibaudgg/rb-fsevent/wiki/no-fsevents-fired-(OSX-bug)
|
||||||
|
for possible work arounds or you can work around it immediately
|
||||||
|
with `--force-polling`.
|
||||||
|
STR
|
||||||
|
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
def collect_urls(urls, things, destination)
|
def collect_urls(urls, things, destination)
|
||||||
things.each do |thing|
|
things.each do |thing|
|
||||||
dest = thing.destination(destination)
|
dest = thing.destination(destination)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
module Jekyll
|
module Jekyll
|
||||||
module Utils
|
module Utils extend self
|
||||||
extend self
|
autoload :Platforms, 'jekyll/utils/platforms'
|
||||||
|
|
||||||
# Constants for use in #slugify
|
# Constants for use in #slugify
|
||||||
SLUGIFY_MODES = %w{raw default pretty}
|
SLUGIFY_MODES = %w{raw default pretty}
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
module Jekyll
|
||||||
|
module Utils
|
||||||
|
module Platforms extend self
|
||||||
|
|
||||||
|
# Provides jruby? and mri? which respectively detect these two types of
|
||||||
|
# tested Engines we support, in the future we might probably support the
|
||||||
|
# other one that everyone used to talk about.
|
||||||
|
|
||||||
|
{ :jruby? => "jruby", :mri? => "ruby" }.each do |k, v|
|
||||||
|
define_method k do
|
||||||
|
::RUBY_ENGINE == v
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Provides windows?, linux?, osx?, unix? so that we can detect
|
||||||
|
# platforms. This is mostly useful for `jekyll doctor` and for testing
|
||||||
|
# where we kick off certain tests based on the platform.
|
||||||
|
|
||||||
|
{ :windows? => /mswin|mingw|cygwin/, :linux? => /linux/, \
|
||||||
|
:osx? => /darwin|mac os/, :unix? => /solaris|bsd/ }.each do |k, v|
|
||||||
|
|
||||||
|
define_method k do
|
||||||
|
!!(
|
||||||
|
RbConfig::CONFIG["host_os"] =~ v
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue