Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- if fetched_file_blank? or fetched_file_expired?
- fetch!
- end
- write_cached_screenfetch!
- BEGIN {
- COMMAND = 'screenfetch'.freeze
- EXPIRATION_TIMEOUT = 5 * 60 # 5 minutes
- FETCHED_PATH = File.expand_path('~/.screenfetched').freeze
- WRITE_MODE = 'w'.freeze
- def fetch!
- File.open(FETCHED_PATH, WRITE_MODE) do |f|
- if f.flock(File::LOCK_EX|File::LOCK_NB)
- f.write(`#{COMMAND}`)
- f.flush
- else
- f.flock(File::LOCK_EX)
- end
- f.flock(File::LOCK_UN)
- end
- end
- def fetched_file_blank?
- !File.exist?(FETCHED_PATH)
- end
- def fetched_file_expired?
- Time.now - File.mtime(FETCHED_PATH) > EXPIRATION_TIMEOUT
- end
- def write_cached_screenfetch!
- File.open(FETCHED_PATH) do |f|
- f.flock(File::LOCK_SH)
- puts(f.read)
- end
- end
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement