summaryrefslogtreecommitdiff
path: root/lib/facter/tor_hidden_services.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/facter/tor_hidden_services.rb')
-rw-r--r--lib/facter/tor_hidden_services.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/facter/tor_hidden_services.rb b/lib/facter/tor_hidden_services.rb
new file mode 100644
index 0000000..c2a6cca
--- /dev/null
+++ b/lib/facter/tor_hidden_services.rb
@@ -0,0 +1,19 @@
+Facter.add(:tor_hidden_services) do
+ confine :kernel => "Linux"
+ setcode do
+ config_file = '/etc/tor/torrc'
+ if File.exists?(config_file)
+ dirs = File.read(config_file).split("\n").select{|l|
+ l =~ /^HiddenServiceDir/
+ }.collect{|l| l.sub(/^HiddenServiceDir /,'') }
+ dirs.inject({}) { |res,d|
+ if File.exists?(h=File.join(d,'hostname'))
+ res[File.basename(d)] = File.read(h).chomp
+ end
+ res
+ }
+ else
+ {}
+ end
+ end
+end