File indexing completed on 2024-03-24 15:44:05

0001 class VariableSock
0002    include KMuddy
0003 
0004    def initialize
0005       if ENV.has_key?('KMUDDY_SOCKET')
0006          @socket_name = ENV['KMUDDY_SOCKET']
0007       else
0008          warn("Variable KMUDDY_SOCKET is not set - variable support won't work!")
0009       end
0010 
0011       begin
0012          @socketfile = UNIXSocket.new(@socket_name)
0013       rescue StandardError => errormsg
0014          warn("VariableSock.initialize: #{errormsg}")
0015       end
0016    end
0017 
0018    def close
0019       unless(@socketfile.closed?)
0020          @socketfile.close
0021       else
0022          warn("VariableSock.close: The pipe is not open.")
0023       end
0024    end
0025 
0026    def get(name)
0027       unless(@socket_name.nil? || @socket_name.empty?)
0028          begin
0029             @socketfile.puts("get #{name}")
0030             return @socketfile.gets.chomp
0031          rescue StandardError => errormsg
0032             warn("VariableSock.get: #{errormsg}")
0033          end
0034       else
0035          warn("VariableSock.get: The pipe is not open.")
0036       end
0037    end
0038 
0039    def set(name,value)
0040       unless(@socket_name.nil? || @socket_name.empty?)
0041          begin
0042             @socketfile.puts("set #{name} #{value}")
0043             return @socketfile.gets.chomp
0044          rescue StandardError => errormsg
0045             warn("VariableSock.set: #{errormsg}")
0046          end
0047       else
0048          warn("VariableSock.set: The pipe is not open.")
0049       end
0050    end
0051 
0052    def unset(name)
0053       unless(@socket_name.nil? || @socket_name.empty?)
0054          begin
0055             @socketfile.puts("unset #{name}")
0056             return @socketfile.gets.chomp
0057          rescue StandardError => errormsg
0058             warn("VariableSock.unset: #{errormsg}")
0059          end
0060       else
0061          warn("VariableSock.unset: The pipe is not open.")
0062       end
0063    end
0064 
0065    def inc(name)
0066       unless(@socket_name.nil? || @socket_name.empty?)
0067          begin
0068             @socketfile.puts("inc #{name}")
0069             return @socketfile.gets.chomp
0070          rescue StandardError => errormsg
0071             warn("VariableSock.inc: #{errormsg}")
0072          end
0073       else
0074          warn("VariableSock.inc: The pipe is not open.")
0075       end
0076    end
0077 
0078    def dec(name)
0079       unless(@socket_name.nil? || @socket_name.empty?)
0080          begin
0081             @socketfile.puts("dec #{name}")
0082             return @socketfile.gets.chomp
0083          rescue StandardError => errormsg
0084             warn("VariableSock.dec: #{errormsg}")
0085          end
0086       else
0087          warn("VariableSock.dec: The pipe is not open.")
0088       end
0089    end
0090 
0091    def request(name)
0092       unless(@socket_name.nil? || @socket_name.empty?)
0093          begin
0094             @socketfile.puts("request #{name}")
0095             return @socketfile.gets.chomp
0096          rescue StandardError => errormsg
0097             warn("VariableSock.request: #{errormsg}")
0098          end
0099       else
0100          warn("VariableSock.request: The pipe is not open.")
0101       end
0102    end
0103 
0104    def provide(name)
0105       unless(@socket_name.nil? || @socket_name.empty?)
0106          begin
0107             @socketfile.puts("provide #{name}")
0108             return @socketfile.gets.chomp
0109          rescue StandardError => errormsg
0110             warn("VariableSock.provide: #{errormsg}")
0111          end
0112       else
0113          warn("VariableSock.provide: The pipe is not open.")
0114       end
0115    end
0116 
0117    def lock(name)
0118       unless(@socket_name.nil? || @socket_name.empty?)
0119          begin
0120             @socketfile.puts("lock #{name}")
0121             return @socketfile.gets.chomp
0122          rescue StandardError => errormsg
0123             warn("VariableSock.lock: #{errormsg}")
0124          end
0125       else
0126          warn("VariableSock.lock: The pipe is not open.")
0127       end
0128    end
0129 
0130    def unlock(name)
0131       unless(@socket_name.nil? || @socket_name.empty?)
0132          begin
0133             @socketfile.puts("unlock #{name}")
0134             return @socketfile.gets.chomp
0135          rescue StandardError => errormsg
0136             warn("VariableSock.unlock: #{errormsg}")
0137          end
0138       else
0139          warn("VariableSock.unlock: The pipe is not open.")
0140       end
0141    end
0142 
0143    def command(command)
0144       unless(@socket_name.nil? || @socket_name.empty?)
0145          begin
0146             @socketfile.puts("send #{command}")
0147             @socketfile.gets.chomp
0148             @socketfile.puts("set lastcommand #{command}")
0149             return @socketfile.gets.chomp
0150          rescue StandardError => errormsg
0151             warn("VariableSock.command: #{errormsg}")
0152          end
0153       else
0154          warn("VariableSock.command: The pipe is not open.")
0155       end
0156    end
0157 end