summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2015-03-15 13:32:25 +0100
committermh <mh@immerda.ch>2015-03-15 13:39:10 +0100
commita7599e6308ad6c2ca7b3e19fd3364694e9fd6f9c (patch)
tree14d1fa65d4c322d10e405a57ff15fe7e6ac52845 /lib
parent55084912ec9a5b8bcc8766d5db95beb16b618892 (diff)
add a fact to collect hidden services
Diffstat (limited to 'lib')
-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