#!/usr/bin/env ruby                                                                                                                                                                                                
###############################################################################                                                                                                                                    
# /etc/systemd/scripts/disable-wakeup                                                                                                                                                                              
#                                                                                                                                                                                                                  
# Disable some devices like usb wakeup system from hibernate or sleep.                                                                                                                                             
###############################################################################                                                                                                                                    
                                                                                                                                                                                                                   
class MainApp                                                                                                                                                                                                      
  def initialize                                                                                                                                                                                                   
    @dev_list = []                                                                                                                                                                                                 
  end                                                                                                                                                                                                              
                                                                                                                                                                                                                   
  def run                                                                                                                                                                                                          
    File.open("/proc/acpi/wakeup", "r") do |file|                                                                                                                                                                  
      file.each_line do |line|                                                                                                                                                                                     
        if line =~ /enabled/                                                                                                                                                                                       
          @dev_list << line.match(/\w+/).to_s                                                                                                                                                                      
        end                                                                                                                                                                                                        
      end                                                                                                                                                                                                          
    end                                                                                                                                                                                                            
                                                                                                                                                                                                                   
    @dev_list.each do |dev|                                                                                                                                                                                        
      next if dev == "LID0" or dev == "PWRB" or dev == "PWRF"                                                                                                                                                      
                                                                                                                                                                                                                   
      File.open("/proc/acpi/wakeup", "w") do |file|                                                                                                                                                                
        file.write("#{dev}")                                                                                                                                                                                       
      end                                                                                                                                                                                                          
    end                                                                                                                                                                                                            
  end                                                                                                                                                                                                              
end                                                                                                                                                                                                                
                                                                                                                                                                                                                   
app = MainApp.new                                                                                                                                                                                                  
app.run