Sha256: 96495da9c1bb9289d7b09151bdf5d7fe5f18f8430ec4504540d8b2b1acca4a42
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
require 'thor' require 'writefully/process' require 'pry' module Writefully class CLI < Thor desc "start", "Start listening to the content directory" method_options %w( daemonize -d ) => :boolean def start(file) config = Writefully.config_from(file) if options.daemonize? ::Process.daemon(true, true) write(::Process.pid, config[:pidfile]) spawn(listen(config)) else ::Signal.trap("INT") { $stdout.puts "Writefully exiting..."; exit } listen(config) end end desc "stop", "Stop listening for content directory changes" def stop(file) config = Writefully.config_from(file) pid = open(config[:pidfile]).read.strip.to_i ::Process.kill("HUP", pid) true rescue Errno::ENOENT $stdout.puts "#{pidfile} does not exist: Errno::ENOENT" true rescue Errno::ESRCH $stdout.puts "The process #{pid} did not exist: Errno::ESRCH" true rescue Errno::EPERM $stderr.puts "Lack of privileges to manage the process #{pid}: Errno::EPERM" false rescue ::Exception => e $stderr.puts "While signaling the PID, unexpected #{e.class}: #{e}" false end no_tasks do def listen(config) Writefully::Process.new(config).listen end def write pid, pidfile File.open pidfile, "w" do |f| f.write pid end rescue ::Exception => e $stderr.puts "While writing the PID to file, unexpected #{e.class}: #{e}" ::Process.kill "HUP", pid end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
writefully-0.4.2 | lib/writefully/cli.rb |
writefully-0.4.1 | lib/writefully/cli.rb |