Class: Arachni::OptionGroups::Paths

Inherits:
Arachni::OptionGroup show all
Defined in:
lib/arachni/option_groups/paths.rb

Overview

Holds paths to the directories of various system components.

Author:

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Arachni::OptionGroup

#==, attr_accessor, attributes, #attributes, defaults, #defaults, #hash, inherited, #merge, set_defaults, #to_h, #to_hash, #to_rpc_data, #update, #validate

Constructor Details

#initializePaths

Returns a new instance of Paths.



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/arachni/option_groups/paths.rb', line 35

def initialize
    @root       = root_path
    @gfx        = @root + 'gfx/'
    @components = @root + 'components/'

    if self.class.config['framework']['snapshots']
        @snapshots  = self.class.config['framework']['snapshots']
    else
        @snapshots  = @root + 'snapshots/'
    end

    if ENV['ARACHNI_FRAMEWORK_LOGDIR']
        @logs = "#{ENV['ARACHNI_FRAMEWORK_LOGDIR']}/"
    elsif self.class.config['framework']['logs']
        @logs = self.class.config['framework']['logs']
    else
        @logs = "#{@root}logs/"
    end

    @checks          = @components + 'checks/'
    @reporters       = @components + 'reporters/'
    @plugins         = @components + 'plugins/'
    @services        = @components + 'services/'
    @path_extractors = @components + 'path_extractors/'
    @fingerprinters  = @components + 'fingerprinters/'

    @lib = @root + 'lib/arachni/'

    @executables = @lib + 'processes/executables/'
    @support     = @lib + 'support/'
    @mixins      = @support + 'mixins/'
    @arachni     = @lib[0...-1]
end

Instance Attribute Details

#arachniObject

Returns the value of attribute arachni.



19
20
21
# File 'lib/arachni/option_groups/paths.rb', line 19

def arachni
  @arachni
end

#checksObject

Returns the value of attribute checks.



24
25
26
# File 'lib/arachni/option_groups/paths.rb', line 24

def checks
  @checks
end

#componentsObject

Returns the value of attribute components.



21
22
23
# File 'lib/arachni/option_groups/paths.rb', line 21

def components
  @components
end

#executablesObject

Returns the value of attribute executables.



23
24
25
# File 'lib/arachni/option_groups/paths.rb', line 23

def executables
  @executables
end

#fingerprintersObject

Returns the value of attribute fingerprinters.



29
30
31
# File 'lib/arachni/option_groups/paths.rb', line 29

def fingerprinters
  @fingerprinters
end

#gfxObject

Returns the value of attribute gfx.



20
21
22
# File 'lib/arachni/option_groups/paths.rb', line 20

def gfx
  @gfx
end

#libObject

Returns the value of attribute lib.



30
31
32
# File 'lib/arachni/option_groups/paths.rb', line 30

def lib
  @lib
end

#logsObject

Returns the value of attribute logs.



22
23
24
# File 'lib/arachni/option_groups/paths.rb', line 22

def logs
  @logs
end

#mixinsObject

Returns the value of attribute mixins.



32
33
34
# File 'lib/arachni/option_groups/paths.rb', line 32

def mixins
  @mixins
end

#path_extractorsObject

Returns the value of attribute path_extractors.



28
29
30
# File 'lib/arachni/option_groups/paths.rb', line 28

def path_extractors
  @path_extractors
end

#pluginsObject

Returns the value of attribute plugins.



26
27
28
# File 'lib/arachni/option_groups/paths.rb', line 26

def plugins
  @plugins
end

#reportersObject

Returns the value of attribute reporters.



25
26
27
# File 'lib/arachni/option_groups/paths.rb', line 25

def reporters
  @reporters
end

#rootObject

Returns the value of attribute root.



18
19
20
# File 'lib/arachni/option_groups/paths.rb', line 18

def root
  @root
end

#servicesObject

Returns the value of attribute services.



27
28
29
# File 'lib/arachni/option_groups/paths.rb', line 27

def services
  @services
end

#snapshotsObject

Returns the value of attribute snapshots.



33
34
35
# File 'lib/arachni/option_groups/paths.rb', line 33

def snapshots
  @snapshots
end

#supportObject

Returns the value of attribute support.



31
32
33
# File 'lib/arachni/option_groups/paths.rb', line 31

def support
  @support
end

Class Method Details

.clear_config_cacheObject



86
87
88
# File 'lib/arachni/option_groups/paths.rb', line 86

def self.clear_config_cache
    @config = nil
end

.configObject



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/arachni/option_groups/paths.rb', line 90

def self.config
    return @config if @config

    if !File.exist?( paths_config_file )
        @config = {}
    else
        @config = YAML.load( IO.read( paths_config_file ) )
    end

    @config['framework'] ||= {}
    @config['cli']       ||= {}

    @config.dup.each do |category, config|
        config.dup.each do |subcat, dir|
            if dir.to_s.empty?
                @config[category].delete subcat
                next
            end

            dir.gsub!( '~', ENV['HOME'] )
            dir << '/' if !dir.end_with?( '/' )

            FileUtils.mkdir_p dir
        end
    end

    @config
end

.paths_config_fileObject



82
83
84
# File 'lib/arachni/option_groups/paths.rb', line 82

def self.paths_config_file
    "#{root_path}config/write_paths.yml"
end

.root_pathString

Returns Root path of the framework.

Returns:

  • (String)

    Root path of the framework.



74
75
76
# File 'lib/arachni/option_groups/paths.rb', line 74

def self.root_path
    File.expand_path( File.dirname( __FILE__ ) + '/../../..' ) + '/'
end

Instance Method Details

#configObject



78
79
80
# File 'lib/arachni/option_groups/paths.rb', line 78

def config
    self.class.config
end

#root_pathObject



69
70
71
# File 'lib/arachni/option_groups/paths.rb', line 69

def root_path
    self.class.root_path
end