66 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | module Hbc | ||
|  |   class Config | ||
|  |     def self.global | ||
|  |       @global ||= new | ||
|  |     end | ||
|  | 
 | ||
|  |     attr_reader :binarydir | ||
|  | 
 | ||
|  |     def initialize( | ||
|  |       appdir:               "/Applications", | ||
|  |       prefpanedir:          "~/Library/PreferencePanes", | ||
|  |       qlplugindir:          "~/Library/QuickLook", | ||
|  |       dictionarydir:        "~/Library/Dictionaries", | ||
|  |       fontdir:              "~/Library/Fonts", | ||
|  |       colorpickerdir:       "~/Library/ColorPickers", | ||
|  |       servicedir:           "~/Library/Services", | ||
|  |       input_methoddir:      "~/Library/Input Methods", | ||
|  |       internet_plugindir:   "~/Library/Internet Plug-Ins", | ||
|  |       audio_unit_plugindir: "~/Library/Audio/Plug-Ins/Components", | ||
|  |       vst_plugindir:        "~/Library/Audio/Plug-Ins/VST", | ||
|  |       vst3_plugindir:       "~/Library/Audio/Plug-Ins/VST3", | ||
|  |       screen_saverdir:      "~/Library/Screen Savers" | ||
|  |     ) | ||
|  | 
 | ||
|  |       self.appdir               = appdir | ||
|  |       self.prefpanedir          = prefpanedir | ||
|  |       self.qlplugindir          = qlplugindir | ||
|  |       self.dictionarydir        = dictionarydir | ||
|  |       self.fontdir              = fontdir | ||
|  |       self.colorpickerdir       = colorpickerdir | ||
|  |       self.servicedir           = servicedir | ||
|  |       self.input_methoddir      = input_methoddir | ||
|  |       self.internet_plugindir   = internet_plugindir | ||
|  |       self.audio_unit_plugindir = audio_unit_plugindir | ||
|  |       self.vst_plugindir        = vst_plugindir | ||
|  |       self.vst3_plugindir       = vst3_plugindir | ||
|  |       self.screen_saverdir      = screen_saverdir | ||
|  | 
 | ||
|  |       # `binarydir` is not customisable. | ||
|  |       @binarydir = HOMEBREW_PREFIX/"bin" | ||
|  |     end | ||
|  | 
 | ||
|  |     [ | ||
|  |       :appdir, | ||
|  |       :prefpanedir, | ||
|  |       :qlplugindir, | ||
|  |       :dictionarydir, | ||
|  |       :fontdir, | ||
|  |       :colorpickerdir, | ||
|  |       :servicedir, | ||
|  |       :input_methoddir, | ||
|  |       :internet_plugindir, | ||
|  |       :audio_unit_plugindir, | ||
|  |       :vst_plugindir, | ||
|  |       :vst3_plugindir, | ||
|  |       :screen_saverdir, | ||
|  |     ].each do |dir| | ||
|  |       attr_reader dir | ||
|  | 
 | ||
|  |       define_method(:"#{dir}=") do |path| | ||
|  |         instance_variable_set(:"@#{dir}", Pathname(path).expand_path) | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end |