Sha256: 00d4e27f6e82fd694fdc773c823b00e6c3447250b3e0ab160ee7753ebe61e9d4
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true module Lolcommits module CLI # Helper class for forking lolcommits process to the background (or not). class ProcessRunner # Initializes a new process runner. # # @param config [Lolcommits::Configuration] def initialize(config) @configuration = config end # Forks the lolcommits process if requested. # # Writes the PID of the lolcommits process to the filesystem when # backgrounded, for monitoring purposes. # # @param please [Boolean] whether or not to fork lolcommits process # @yield the main event loop for lolcommits def fork_me?(please, &block) if please $stdout.sync = true write_pid fork { yield block delete_pid } else yield block end end private def write_pid(pid) File.write(pid_file, pid) end def delete_pid File.rm_f(pid_file) end def pid_file File.join(@configuration.loldir, 'lolcommits.pid') end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lolcommits-0.16.4 | lib/lolcommits/cli/process_runner.rb |