scms 3.0.1 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/bin/scms +12 -6
- data/lib/scms/scms-httpserver.rb +37 -27
- data/lib/scms/scms-utils.rb +17 -1
- data/lib/scms/version.rb +1 -1
- data/scms.gemspec +1 -0
- metadata +15 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,15 +1,15 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            !binary "U0hBMQ==":
         | 
| 3 3 | 
             
              metadata.gz: !binary |-
         | 
| 4 | 
            -
                 | 
| 4 | 
            +
                YmEyNWY2NzYyNjE4NzNiODllNDFlMjFhZTIyMTRhM2YwNWUzNWQ2MQ==
         | 
| 5 5 | 
             
              data.tar.gz: !binary |-
         | 
| 6 | 
            -
                 | 
| 6 | 
            +
                NjYyNDhmNTEwOTQyZThmNWY1NDRjYTI3YjE4NDM1MjgyODRlY2M4Mg==
         | 
| 7 7 | 
             
            SHA512:
         | 
| 8 8 | 
             
              metadata.gz: !binary |-
         | 
| 9 | 
            -
                 | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 9 | 
            +
                MTEyYjNjMzk3NWZkYTk4NTJhZTc2Y2QxODQ3YTQyNTU5NjQ4MGFkYWIyNmE2
         | 
| 10 | 
            +
                ZTE4OWE0MmU0YWU3NzExN2YyYzBmYmNiMDhkMDUzYWQ4YTIwNGE3MjU5N2U0
         | 
| 11 | 
            +
                NTFjNmViZjMyYTgwZjhmMDJlYmJjOTBlNmM3ZmI1ZGQ4M2M5NjY=
         | 
| 12 12 | 
             
              data.tar.gz: !binary |-
         | 
| 13 | 
            -
                 | 
| 14 | 
            -
                 | 
| 15 | 
            -
                 | 
| 13 | 
            +
                ZjM5NWIyNDg1NGZlYTQ4NzVhNWJkOTM2NzEyZDQ4ZTQ5NjhlMDc0ZWFhM2I3
         | 
| 14 | 
            +
                NjY1MmM2NGJlYTc1OTk4MTEzYWVlYzFkYTAyMGU0MWUxOTQzN2ViZGYyMzRh
         | 
| 15 | 
            +
                YzY5ZjM3YTBhNDIwMDk0NDllZDQwMDBlYjY0NWM5MGIzMGU0NDY=
         | 
    
        data/bin/scms
    CHANGED
    
    | @@ -130,7 +130,16 @@ Scms.build(Folders[:website], Folders[:config], options[:mode]) | |
| 130 130 | 
             
            Scms.copywebsite(Folders[:website], Folders[:destination]) if Folders[:destination] != ''
         | 
| 131 131 |  | 
| 132 132 | 
             
            if options[:watch]
         | 
| 133 | 
            -
                require " | 
| 133 | 
            +
                require "filewatcher"
         | 
| 134 | 
            +
                #  I dont really want to use filewatcher but I can't get listen to watch the config file
         | 
| 135 | 
            +
                # I'd use filewatcher to monitor directories but it crashes if a file id deleted
         | 
| 136 | 
            +
                watcher = Thread.new {
         | 
| 137 | 
            +
                  puts "Watching yam files"
         | 
| 138 | 
            +
                  FileWatcher.new(["_config.yml"]).watch do |filename|
         | 
| 139 | 
            +
                    puts "Updated " + filename
         | 
| 140 | 
            +
                    Scms.build(Folders[:website], Folders[:config], options[:mode])
         | 
| 141 | 
            +
                  end
         | 
| 142 | 
            +
                }
         | 
| 134 143 |  | 
| 135 144 | 
             
                psst = []
         | 
| 136 145 | 
             
                #psst.push("_config.yml")# if File.exists?(configfile)
         | 
| @@ -140,18 +149,15 @@ if options[:watch] | |
| 140 149 | 
             
                psst.push("_source") if File.directory? "_source"
         | 
| 141 150 | 
             
                psst.push("_resources") if File.directory? "_resources"
         | 
| 142 151 |  | 
| 152 | 
            +
                require "listen"
         | 
| 143 153 | 
             
                puts "Setting up listen"
         | 
| 144 | 
            -
                listener = Listen.to(psst, force_polling: true | 
| 154 | 
            +
                listener = Listen.to(psst, force_polling: true) do |modified, added, removed|
         | 
| 145 155 | 
             
                  puts "modified: #{modified}" if modified.length > 0
         | 
| 146 156 | 
             
                  puts "added: #{added}" if added.length > 0
         | 
| 147 157 | 
             
                  puts "removed: #{removed}" if removed.length > 0
         | 
| 148 158 |  | 
| 149 159 | 
             
                  Scms.build(Folders[:website], Folders[:config], options[:mode]) if modified.length > 0
         | 
| 150 160 | 
             
                end
         | 
| 151 | 
            -
                trap("INT"){ 
         | 
| 152 | 
            -
                  puts "Closing file watcher"
         | 
| 153 | 
            -
                  listener.stop
         | 
| 154 | 
            -
                }
         | 
| 155 161 | 
             
                listener.start # not blocking
         | 
| 156 162 | 
             
                sleep unless options[:server]
         | 
| 157 163 | 
             
            end
         | 
    
        data/lib/scms/scms-httpserver.rb
    CHANGED
    
    | @@ -1,44 +1,54 @@ | |
| 1 1 | 
             
            require 'webrick'
         | 
| 2 2 | 
             
            require 'launchy'
         | 
| 3 | 
            +
            require "scms/scms-utils.rb"
         | 
| 3 4 |  | 
| 4 5 | 
             
            module ScmsServer
         | 
| 5 6 | 
             
            	include WEBrick
         | 
| 6 7 |  | 
| 7 8 | 
             
            	def ScmsServer.start(root_document, port, hostname="localhost")
         | 
| 8 9 |  | 
| 9 | 
            -
            		 | 
| 10 | 
            -
            		 | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
            			: | 
| 14 | 
            -
            			 | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 10 | 
            +
            		portopen = ScmsUtils.port_open? hostname, port
         | 
| 11 | 
            +
            		puts "Port Open: #{portopen}"
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            		if !portopen
         | 
| 14 | 
            +
            			puts "Starting server: http://#{hostname}:#{port}"
         | 
| 15 | 
            +
            			#:BindAddress
         | 
| 16 | 
            +
            			server = HTTPServer.new(
         | 
| 17 | 
            +
            				:DocumentRoot => root_document,
         | 
| 18 | 
            +
            				:Port => port, 
         | 
| 19 | 
            +
            				:BindAddress => hostname
         | 
| 20 | 
            +
            			)
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            			mime_types_file = File.expand_path('../../assets/mime.types', File.dirname(__FILE__))
         | 
| 23 | 
            +
            			WEBrick::HTTPUtils::load_mime_types(mime_types_file)
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            			trap("INT"){ 
         | 
| 26 | 
            +
            			  puts "Closed http server"
         | 
| 27 | 
            +
            			  server.shutdown
         | 
| 28 | 
            +
            			  #exit!
         | 
| 29 | 
            +
            			}
         | 
| 30 | 
            +
            		else
         | 
| 31 | 
            +
            			puts "Server already running on port: #{port}"
         | 
| 32 | 
            +
            		end
         | 
| 25 33 |  | 
| 26 34 | 
             
            		uri = "http://#{hostname}:#{port}"
         | 
| 27 35 | 
             
            		Launchy.open( uri ) do |exception|
         | 
| 28 36 | 
             
            		  puts "Attempted to open #{uri} and failed because #{exception}"
         | 
| 29 37 | 
             
            		end
         | 
| 30 38 |  | 
| 31 | 
            -
            		 | 
| 32 | 
            -
            			 | 
| 33 | 
            -
             | 
| 34 | 
            -
            			 | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
            			 | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
            			 | 
| 41 | 
            -
             | 
| 39 | 
            +
            		if !portopen
         | 
| 40 | 
            +
            			begin
         | 
| 41 | 
            +
            				server.start
         | 
| 42 | 
            +
            			rescue SystemExit, Interrupt
         | 
| 43 | 
            +
            				puts "Closing web brick"
         | 
| 44 | 
            +
            				server.start
         | 
| 45 | 
            +
            			rescue StandardError => e
         | 
| 46 | 
            +
            				puts "StandardError"
         | 
| 47 | 
            +
            				server.shutdown
         | 
| 48 | 
            +
            			rescue Exception => e
         | 
| 49 | 
            +
            				puts "scms-server exception"
         | 
| 50 | 
            +
            				rais e
         | 
| 51 | 
            +
            			end
         | 
| 42 52 | 
             
            		end
         | 
| 43 53 | 
             
            	end
         | 
| 44 54 |  | 
    
        data/lib/scms/scms-utils.rb
    CHANGED
    
    | @@ -3,11 +3,27 @@ module ScmsUtils | |
| 3 3 | 
             
                require 'fileutils'
         | 
| 4 4 | 
             
                require 'open-uri'
         | 
| 5 5 |  | 
| 6 | 
            +
                require 'socket'
         | 
| 7 | 
            +
                require 'timeout'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                def ScmsUtils.port_open?(ip, port, seconds=1)
         | 
| 10 | 
            +
                  Timeout::timeout(seconds) do
         | 
| 11 | 
            +
                    begin
         | 
| 12 | 
            +
                      TCPSocket.new(ip, port).close
         | 
| 13 | 
            +
                      true
         | 
| 14 | 
            +
                    rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
         | 
| 15 | 
            +
                      false
         | 
| 16 | 
            +
                    end
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
                rescue Timeout::Error
         | 
| 19 | 
            +
                  false
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 6 22 | 
             
                def ScmsUtils.getsettings(yamlpath)
         | 
| 7 23 | 
             
                    ScmsUtils.log("Loading Config: #{ScmsUtils.uriEncode("file:///#{yamlpath}")}")
         | 
| 8 24 | 
             
                    config = nil
         | 
| 9 25 |  | 
| 10 | 
            -
            ##http://snk.tuxfamily.org/log/yaml-json-validation-kwalify-ruby19.html
         | 
| 26 | 
            +
                    ##http://snk.tuxfamily.org/log/yaml-json-validation-kwalify-ruby19.html
         | 
| 11 27 | 
             
                    #'kwalify'
         | 
| 12 28 | 
             
                    #schema = Kwalify::Yaml.load_file('some_complex_schema.yaml')
         | 
| 13 29 | 
             
                    #validator = Kwalify::Validator.new(schema)
         | 
    
        data/lib/scms/version.rb
    CHANGED
    
    
    
        data/scms.gemspec
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: scms
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3.0. | 
| 4 | 
            +
              version: 3.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Courtenay Probert
         | 
| @@ -80,6 +80,20 @@ dependencies: | |
| 80 80 | 
             
                - - ! '>='
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: '0'
         | 
| 83 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 84 | 
            +
              name: filewatcher
         | 
| 85 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 | 
            +
                requirements:
         | 
| 87 | 
            +
                - - ! '>='
         | 
| 88 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 89 | 
            +
                    version: '0'
         | 
| 90 | 
            +
              type: :runtime
         | 
| 91 | 
            +
              prerelease: false
         | 
| 92 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 | 
            +
                requirements:
         | 
| 94 | 
            +
                - - ! '>='
         | 
| 95 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 96 | 
            +
                    version: '0'
         | 
| 83 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 98 | 
             
              name: webrick
         | 
| 85 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         |