diff --git a/.gitignore b/.gitignore deleted file mode 100644 index dade81e..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -Gemfile.lock -.bundled_gems/ diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 019213a..0000000 --- a/Gemfile +++ /dev/null @@ -1,15 +0,0 @@ -source 'https://rubygems.org' - -if File.exists?('/home/zuul/src/git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper') - gem_checkout_method = {:path => '/home/zuul/src/git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'} -else - gem_checkout_method = {:git => 'https://git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'} -end -gem_checkout_method[:require] = false - -group :development, :test, :system_tests do - gem 'puppet-openstack_infra_spec_helper', - gem_checkout_method -end - -# vim:ft=ruby diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d645695..0000000 --- a/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/README.md b/README.md index fe7c432..ec889a9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ -# OpenStack Meetbot Module +This project is no longer maintained. -## Overview +The contents of this repository are still available in the Git +source code management system. To see the contents of this +repository before it reached its end of life, please check out the +previous commit with "git checkout HEAD^1". -Configures MeetBot. +For any further questions, please email +service-discuss@lists.opendev.org or join #opendev on OFTC. diff --git a/Rakefile b/Rakefile deleted file mode 100644 index ff1f0d7..0000000 --- a/Rakefile +++ /dev/null @@ -1,8 +0,0 @@ -require 'rubygems' -require 'puppetlabs_spec_helper/rake_tasks' -require 'puppet-lint/tasks/puppet-lint' -PuppetLint.configuration.fail_on_warnings = true -PuppetLint.configuration.send('disable_80chars') -PuppetLint.configuration.send('disable_autoloader_layout') -PuppetLint.configuration.send('disable_class_inherits_from_params_class') -PuppetLint.configuration.send('disable_class_parameter_defaults') diff --git a/manifests/init.pp b/manifests/init.pp deleted file mode 100644 index d116f8b..0000000 --- a/manifests/init.pp +++ /dev/null @@ -1,84 +0,0 @@ -class meetbot { - include ::httpd - include ::meetbot::params - - # The Apache mod_version module only needs to be enabled on Ubuntu 12.04 - # as it comes compiled and enabled by default on newer OS, including CentOS - if !defined(Httpd::Mod['version']) and $::operatingsystem == 'Ubuntu' and $::operatingsystemrelease == '12.04' { - httpd::mod { 'version': - ensure => present - } - } - - vcsrepo { '/opt/meetbot': - ensure => latest, - provider => git, - source => 'https://git.openstack.org/openstack-infra/meetbot', - } - - vcsrepo { '/opt/ubuntu_supybot_plugins': - ensure => present, - provider => bzr, - require => [ - Package['bzr'], - ], - source => 'lp:ubuntu-bots' - } - - user { 'meetbot': - gid => 'meetbot', - home => '/var/lib/meetbot', - shell => '/usr/sbin/nologin', - system => true, - require => Group['meetbot'], - } - - group { 'meetbot': - ensure => present, - } - - $packages = [ - 'supybot', - 'bzr', - 'python-launchpadlib', - 'python-soappy', - 'python-twisted' - ] - - package { $packages: - ensure => present, - } - - package { 'irclog2html': - ensure => 'present', - provider => openstack_pip, - } - - file { '/var/lib/meetbot': - ensure => directory, - owner => 'meetbot', - require => User['meetbot'], - } - - file { "${::meetbot::params::plugins_dir}/supybot/plugins/MeetBot": - ensure => directory, - recurse => true, - require => [ - Package['supybot'], - Vcsrepo['/opt/meetbot'] - ], - source => '/opt/meetbot/MeetBot', - } - - file { "${::meetbot::params::plugins_dir}/supybot/plugins/Bugtracker": - ensure => directory, - recurse => true, - require => [ - Package['supybot'], - Vcsrepo['/opt/ubuntu_supybot_plugins'] - ], - source => '/opt/ubuntu_supybot_plugins/Bugtracker', - } -} - -# vim:sw=2:ts=2:expandtab:textwidth=79 diff --git a/manifests/params.pp b/manifests/params.pp deleted file mode 100644 index 19c4fa1..0000000 --- a/manifests/params.pp +++ /dev/null @@ -1,12 +0,0 @@ -# Class: meetbot::params -# -class meetbot::params { - $plugins_dir = $::lsbdistcodename ? { - 'xenial' => '/usr/lib/python2.7/dist-packages', - default => '/usr/share/pyshared', - } - $initd = $::lsbdistcodename ? { - 'trusty' => 'upstart', - default => 'systemd', - } -} diff --git a/manifests/site.pp b/manifests/site.pp deleted file mode 100644 index f38e5df..0000000 --- a/manifests/site.pp +++ /dev/null @@ -1,151 +0,0 @@ -define meetbot::site( - $channels, - $network, - $nick, - $nickpass, - $server, - $use_ssl, - $vhost_extra = undef, - $vhost_name = $::fqdn, - $manage_index = true, -) { - include ::meetbot::params - - $varlib = "/var/lib/meetbot/${name}" - $meetbot = "/srv/meetbot-${name}" - - $port = 80 - $docroot = "/srv/meetbot-${name}" - $srvname = $vhost_name - $_vhost_name = '*' - $options = 'Indexes FollowSymLinks MultiViews' - ::httpd::vhost { $vhost_name: - port => 80, - docroot => "/srv/meetbot-${name}", - priority => '50', - content => template('meetbot/vhost.erb'), - } - - file { $varlib: - ensure => directory, - owner => 'meetbot', - require => File['/var/lib/meetbot'], - } - - file { $meetbot: - ensure => directory, - } - - if $manage_index == true { - file { "${meetbot}/index.html": - ensure => present, - content => template('meetbot/index.html.erb'), - require => File[$meetbot], - } - } - - file { "${meetbot}/irclogs": - ensure => link, - target => "${varlib}/logs/ChannelLogger/${network}", - require => File[$meetbot], - } - - file { "${meetbot}/meetings": - ensure => link, - target => "${varlib}/meetings", - require => File[$meetbot], - } - - file { [ - "${varlib}/conf", - "${varlib}/data", - "${varlib}/backup", - "${varlib}/logs" - ]: - ensure => directory, - owner => 'meetbot', - require => File[$varlib], - } - - file { "${varlib}/data/tmp": - ensure => directory, - owner => 'meetbot', - require => File["${varlib}/data"], - } - - # set to root/root so meetbot doesn't overwrite - file { "${varlib}.conf": - ensure => present, - content => template('meetbot/supybot.conf.erb'), - group => 'root', - notify => Service["${name}-meetbot"], - owner => 'root', - require => File['/var/lib/meetbot'], - } - - file { "${varlib}/ircmeeting": - ensure => directory, - owner => 'meetbot', - recurse => true, - require => [ - Vcsrepo['/opt/meetbot'], - File[$varlib] - ], - source => '/opt/meetbot/ircmeeting', - } - - file { "${varlib}/ircmeeting/meetingLocalConfig.py": - ensure => present, - content => template('meetbot/meetingLocalConfig.py.erb'), - notify => Service["${name}-meetbot"], - owner => 'meetbot', - require => File["${varlib}/ircmeeting"], - } - - cron { 'irclog2html': - user => 'meetbot', - weekday => '*', - hour => '*', - minute => '*/15', - command => "find ${varlib}/logs/ChannelLogger/${network} -mindepth 1 -maxdepth 1 -type d | xargs -n1 logs2html", - environment => 'PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', - } - - if ($::meetbot::params::initd == 'systemd') { - $initd_path = "/etc/systemd/system/${name}-meetbot.service" - # This is a hack to make sure that systemd is aware of the new service - # before we attempt to start it. - exec { "${name}-meetbot-systemd-daemon-reload": - command => '/bin/systemctl daemon-reload', - before => Service["${name}-meetbot"], - subscribe => File["${name}-initd"], - refreshonly => true, - } - } else { - $initd_path = "/etc/init/${name}-meetbot.conf" - } - - file { "${name}-initd": - ensure => present, - path => $initd_path, - content => template("meetbot/${::meetbot::params::initd}.erb"), - notify => Service["${name}-meetbot"], - owner => 'root', - replace => true, - require => File["${varlib}.conf"], - } - - service { "${name}-meetbot": - provider => $::meetbot::params::initd, - require => [ - Vcsrepo['/opt/meetbot'], - File["${name}-initd"] - ], - subscribe => [ - File["${::meetbot::params::plugins_dir}/supybot/plugins/MeetBot"], - File["${varlib}/ircmeeting"] - ], - } -} - -# vim:sw=2:ts=2:expandtab:textwidth=79 diff --git a/metadata.json b/metadata.json deleted file mode 100644 index 656f30f..0000000 --- a/metadata.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "openstackinfra-meetbot", - "version": "0.0.1", - "author": "Openstack CI", - "summary": "Puppet module for Meetbot", - "license": "Apache 2.0", - "source": "https://git.openstack.org/openstack-infra/puppet-meetbot.git", - "project_page": "http://docs.openstack.org/infra/system-config/", - "issues_url": "https://storyboard.openstack.org/#!/project/764", - "dependencies": [ - {"name":"openstackinfra/vcsrepo","version_requirement":">= 0.0.8"} - ] -} diff --git a/spec/acceptance/basic_spec.rb b/spec/acceptance/basic_spec.rb deleted file mode 100644 index a29e237..0000000 --- a/spec/acceptance/basic_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance' - -describe 'basic meetbot', :if => ['debian', 'ubuntu'].include?(os[:family]) do - def pp_path - base_path = File.dirname(__FILE__) - File.join(base_path, 'fixtures') - end - - def puppet_manifest - module_path = File.join(pp_path, 'default.pp') - File.read(module_path) - end - - it 'should work with no errors' do - apply_manifest(puppet_manifest, catch_failures: true) - end - - it 'should be idempotent' do - apply_manifest(puppet_manifest, catch_changes: true) - end - - describe command(" curl http://localhost") do - its(:stdout) { should contain('Welcome to Openstack IRC log server') } - end - - expected_vhost = < - ServerName eavesdrop.openstack.org - DocumentRoot /srv/meetbot-openstack - - ForceType text/plain - AddDefaultCharset UTF-8 - - - Options Indexes FollowSymLinks MultiViews - AllowOverride None - Order allow,deny - allow from all - = 2.4> - Require all granted - - - - - - Header set Access-Control-Allow-Origin "*" - - - - ErrorLog /var/log/apache2/eavesdrop.openstack.org_error.log - LogLevel warn - CustomLog /var/log/apache2/eavesdrop.openstack.org_access.log combined - ServerSignature Off - -EOF - describe file('/etc/apache2/sites-enabled/50-eavesdrop.openstack.org.conf') do - its(:content) { should eq expected_vhost } - end -end diff --git a/spec/acceptance/fixtures/default.pp b/spec/acceptance/fixtures/default.pp deleted file mode 100644 index 0c49cb5..0000000 --- a/spec/acceptance/fixtures/default.pp +++ /dev/null @@ -1,22 +0,0 @@ -include httpd -httpd::mod { 'headers': - ensure => present, -} - -include meetbot -$vhost_extra = ' - - Header set Access-Control-Allow-Origin "*" - -' -meetbot::site { 'openstack': - nick => 'openstack', - nickpass => 'nickpass', - network => 'FreeNode', - server => 'chat.freenode.net:7000', - use_ssl => 'True', - vhost_extra => $vhost_extra, - vhost_name => 'eavesdrop.openstack.org', - manage_index => true, - channels => ['#one', '#two', '#three'], -} diff --git a/spec/acceptance/nodesets/default.yml b/spec/acceptance/nodesets/default.yml deleted file mode 100644 index 3bb3e62..0000000 --- a/spec/acceptance/nodesets/default.yml +++ /dev/null @@ -1,11 +0,0 @@ -HOSTS: - ubuntu-server-1404-x64: - roles: - - master - platform: ubuntu-14.04-amd64 - box: puppetlabs/ubuntu-14.04-64-nocm - box_url: https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm - hypervisor: vagrant -CONFIG: - log_level: debug - type: git diff --git a/spec/acceptance/nodesets/nodepool-centos7.yml b/spec/acceptance/nodesets/nodepool-centos7.yml deleted file mode 100644 index c552874..0000000 --- a/spec/acceptance/nodesets/nodepool-centos7.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - centos-70-x64: - roles: - - master - platform: el-7-x86_64 - hypervisor: none - ip: 127.0.0.1 -CONFIG: - type: foss - set_env: false diff --git a/spec/acceptance/nodesets/nodepool-trusty.yml b/spec/acceptance/nodesets/nodepool-trusty.yml deleted file mode 100644 index 9fc624e..0000000 --- a/spec/acceptance/nodesets/nodepool-trusty.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - ubuntu-14.04-amd64: - roles: - - master - platform: ubuntu-14.04-amd64 - hypervisor: none - ip: 127.0.0.1 -CONFIG: - type: foss - set_env: false diff --git a/spec/acceptance/nodesets/nodepool-xenial.yml b/spec/acceptance/nodesets/nodepool-xenial.yml deleted file mode 100644 index 99dd318..0000000 --- a/spec/acceptance/nodesets/nodepool-xenial.yml +++ /dev/null @@ -1,10 +0,0 @@ -HOSTS: - ubuntu-16.04-amd64: - roles: - - master - platform: ubuntu-16.04-amd64 - hypervisor: none - ip: 127.0.0.1 -CONFIG: - type: foss - set_env: false diff --git a/templates/index.html.erb b/templates/index.html.erb deleted file mode 100644 index c0f1397..0000000 --- a/templates/index.html.erb +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - <%= @name.capitalize %> IRC log server - - -

Welcome to <%= @name.capitalize %> IRC log server

- - - diff --git a/templates/meetingLocalConfig.py.erb b/templates/meetingLocalConfig.py.erb deleted file mode 100644 index 805aee4..0000000 --- a/templates/meetingLocalConfig.py.erb +++ /dev/null @@ -1,5 +0,0 @@ -class Config(object): - # These two are **required**: - logFileDir = '/var/lib/meetbot/<%= @name %>/meetings/' - logUrlPrefix = 'http://<%= @vhost_name %>/meetings/' - filenamePattern = '%(meetingname)s/%%Y/%(meetingname)s.%%F-%%H.%%M' diff --git a/templates/supybot.conf.erb b/templates/supybot.conf.erb deleted file mode 100644 index bc98769..0000000 --- a/templates/supybot.conf.erb +++ /dev/null @@ -1,1512 +0,0 @@ -### -# Determines the bot's default nick. -# -# Default value: supybot -### -supybot.nick: <%= @nick %> - -### -# Determines what alternative nicks will be used if the primary nick -# (supybot.nick) isn't available. A %s in this nick is replaced by the -# value of supybot.nick when used. If no alternates are given, or if all -# are used, the supybot.nick will be perturbed appropriately until an -# unused nick is found. -# -# Default value: %s` %s_ -### -supybot.nick.alternates: %s` %s_ - -### -# Determines the bot's ident string, if the server doesn't provide one -# by default. -# -# Default value: supybot -### -supybot.ident: <%= @nick %> - -### -# Determines the user the bot sends to the server. A standard user using -# the current version of the bot will be generated if this is left -# empty. -# -# Default value: -### -supybot.user: <%= @nick %> - -### -# Determines what networks the bot will connect to. -# -# Default value: -### -supybot.networks: <%= @network %> - -### -# Determines what password will be used on network. Yes, we know that -# technically passwords are server-specific and not network-specific, -# but this is the best we can do right now. -# -# Default value: -### -supybot.networks.<%= @network %>.password: - -### -# Determines what servers the bot will connect to for FreeNode. Each -# will be tried in order, wrapping back to the first when the cycle is -# completed. -# -# Default value: -### -supybot.networks.<%= @network %>.servers: <%= @server %> - -### -# Determines what channels the bot will join only on network. -# -# Default value: -### -supybot.networks.<%= @network %>.channels: <% @channels.each do |channel| %> <%= channel %> <% end %> - -### -# Determines what key (if any) will be used to join the channel. -# -# Default value: -### -supybot.networks.<%= @network %>.channels.key: - -### -# Determines whether the bot will attempt to connect with SSL sockets to -# network. -# -# Default value: False -### -supybot.networks.<%= @network %>.ssl: <%= @use_ssl %> - -### -# Determines how timestamps printed for human reading should be -# formatted. Refer to the Python documentation for the time module to -# see valid formatting characters for time formats. -# -# Default value: %I:%M %p, %B %d, %Y -### -supybot.reply.format.time: %I:%M %p, %B %d, %Y - -### -# Determines whether elapsed times will be given as "1 day, 2 hours, 3 -# minutes, and 15 seconds" or as "1d 2h 3m 15s". -# -# Default value: False -### -supybot.reply.format.time.elapsed.short: False - -### -# Determines the absolute maximum length of the bot's reply -- no reply -# will be passed through the bot with a length greater than this. -# -# Default value: 131072 -### -supybot.reply.maximumLength: 131072 - -### -# Determines whether the bot will break up long messages into chunks and -# allow users to use the 'more' command to get the remaining chunks. -# -# Default value: True -### -supybot.reply.mores: True - -### -# Determines what the maximum number of chunks (for use with the 'more' -# command) will be. -# -# Default value: 50 -### -supybot.reply.mores.maximum: 50 - -### -# Determines how long individual chunks will be. If set to 0, uses our -# super-tweaked, get-the-most-out-of-an-individual-message default. -# -# Default value: 0 -### -supybot.reply.mores.length: 0 - -### -# Determines how many mores will be sent instantly (i.e., without the -# use of the more command, immediately when they are formed). Defaults -# to 1, which means that a more command will be required for all but the -# first chunk. -# -# Default value: 1 -### -supybot.reply.mores.instant: 1 - -### -# Determines whether the bot will send multi-message replies in a single -# message or in multiple messages. For safety purposes (so the bot is -# less likely to flood) it will normally send everything in a single -# message, using mores if necessary. -# -# Default value: True -### -supybot.reply.oneToOne: True - -### -# Determines whether the bot will reply with an error message when it is -# addressed but not given a valid command. If this value is False, the -# bot will remain silent, as long as no other plugins override the -# normal behavior. -# -# Default value: True -### -supybot.reply.whenNotCommand: True - -### -# Determines whether error messages that result from bugs in the bot -# will show a detailed error message (the uncaught exception) or a -# generic error message. -# -# Default value: False -### -supybot.reply.error.detailed: False - -### -# Determines whether the bot will send error messages to users in -# private. You might want to do this in order to keep channel traffic to -# minimum. This can be used in combination with -# supybot.reply.error.withNotice. -# -# Default value: False -### -supybot.reply.error.inPrivate: False - -### -# Determines whether the bot will send error messages to users via -# NOTICE instead of PRIVMSG. You might want to do this so users can -# ignore NOTICEs from the bot and not have to see error messages; or you -# might want to use it in combination with supybot.reply.errorInPrivate -# so private errors don't open a query window in most IRC clients. -# -# Default value: False -### -supybot.reply.error.withNotice: False - -### -# Determines whether the bot will send an error message to users who -# attempt to call a command for which they do not have the necessary -# capability. You may wish to make this True if you don't want users to -# understand the underlying security system preventing them from running -# certain commands. -# -# Default value: False -### -supybot.reply.error.noCapability: False - -### -# Determines whether the bot will reply privately when replying in a -# channel, rather than replying to the whole channel. -# -# Default value: False -### -supybot.reply.inPrivate: False - -### -# Determines whether the bot will reply with a notice when replying in a -# channel, rather than replying with a privmsg as normal. -# -# Default value: False -### -supybot.reply.withNotice: False - -### -# Determines whether the bot will reply with a notice when it is sending -# a private message, in order not to open a /query window in clients. -# This can be overridden by individual users via the user configuration -# variable reply.withNoticeWhenPrivate. -# -# Default value: False -### -supybot.reply.withNoticeWhenPrivate: False - -### -# Determines whether the bot will always prefix the user's nick to its -# reply to that user's command. -# -# Default value: True -### -supybot.reply.withNickPrefix: True - -### -# Determines whether the bot should attempt to reply to all messages -# even if they don't address it (either via its nick or a prefix -# character). If you set this to True, you almost certainly want to set -# supybot.reply.whenNotCommand to False. -# -# Default value: False -### -supybot.reply.whenNotAddressed: False - -### -# Determines whether the bot will allow you to send channel-related -# commands outside of that channel. Sometimes people find it confusing -# if a channel-related command (like Filter.outfilter) changes the -# behavior of the channel but was sent outside the channel itself. -# -# Default value: False -### -supybot.reply.requireChannelCommandsToBeSentInChannel: False - -### -# Supybot normally replies with the full help whenever a user misuses a -# command. If this value is set to True, the bot will only reply with -# the syntax of the command (the first line of the help) rather than the -# full help. -# -# Default value: False -### -supybot.reply.showSimpleSyntax: False - -### -# Determines what prefix characters the bot will reply to. A prefix -# character is a single character that the bot will use to determine -# what messages are addressed to it; when there are no prefix characters -# set, it just uses its nick. Each character in this string is -# interpreted individually; you can have multiple prefix chars -# simultaneously, and if any one of them is used as a prefix the bot -# will assume it is being addressed. -# -# Default value: -### -supybot.reply.whenAddressedBy.chars: ! - -### -# Determines what strings the bot will reply to when they are at the -# beginning of the message. Whereas prefix.chars can only be one -# character (although there can be many of them), this variable is a -# space-separated list of strings, so you can set something like '@@ ??' -# and the bot will reply when a message is prefixed by either @@ or ??. -# -# Default value: -### -supybot.reply.whenAddressedBy.strings: - -### -# Determines whether the bot will reply when people address it by its -# nick, rather than with a prefix character. -# -# Default value: True -### -supybot.reply.whenAddressedBy.nick: False - -### -# Determines whether the bot will reply when people address it by its -# nick at the end of the message, rather than at the beginning. -# -# Default value: False -### -supybot.reply.whenAddressedBy.nick.atEnd: False - -### -# Determines what extra nicks the bot will always respond to when -# addressed by, even if its current nick is something else. -# -# Default value: -### -supybot.reply.whenAddressedBy.nicks: - -### -# Determines whether the bot will unidentify someone when that person -# changes his or her nick. Setting this to True will cause the bot to -# track such changes. It defaults to False for a little greater -# security. -# -# Default value: False -### -supybot.followIdentificationThroughNickChanges: False - -### -# Determines whether the bot will always join a channel when it's -# invited. If this value is False, the bot will only join a channel if -# the user inviting it has the 'admin' capability (or if it's explicitly -# told to join the channel using the Admin.join command) -# -# Default value: False -### -supybot.alwaysJoinOnInvite: False - -### -# Determines what message the bot replies with when a command succeeded. -# If this configuration variable is empty, no success message will be -# sent. -### -supybot.replies.success: The operation succeeded. - -### -# Determines what error message the bot gives when it wants to be -# ambiguous. -### -supybot.replies.error: An error has occurred and has been logged. Please\ - contact this bot's administrator for more\ - information. - -### -# Determines what message the bot replies with when someone tries to use -# a command that requires being identified or having a password and -# neither credential is correct. -### -supybot.replies.incorrectAuthentication: Your hostmask doesn't match or your\ - password is wrong. - -### -# Determines what error message the bot replies with when someone tries -# to accessing some information on a user the bot doesn't know about. -### -supybot.replies.noUser: I can't find %s in my user database. If you didn't\ - give a user name, then I might not know what your\ - user is, and you'll need to identify before this\ - command might work. - -### -# Determines what error message the bot replies with when someone tries -# to do something that requires them to be registered but they're not -# currently recognized. -### -supybot.replies.notRegistered: You must be registered to use this command.\ - If you are already registered, you must\ - either identify (using the identify command)\ - or add a hostmask matching your current\ - hostmask (using the "hostmask add" command). - -### -# Determines what error message is given when the bot is telling someone -# they aren't cool enough to use the command they tried to use. -### -supybot.replies.noCapability: You don't have the %s capability. If you think\ - that you should have this capability, be sure\ - that you are identified before trying again.\ - The 'whoami' command can tell you if you're\ - identified. - -### -# Determines what generic error message is given when the bot is telling -# someone that they aren't cool enough to use the command they tried to -# use, and the author of the code calling errorNoCapability didn't -# provide an explicit capability for whatever reason. -### -supybot.replies.genericNoCapability: You're missing some capability you\ - need. This could be because you\ - actually possess the anti-capability\ - for the capability that's required of\ - you, or because the channel provides\ - that anti-capability by default, or\ - because the global capabilities include\ - that anti-capability. Or, it could be\ - because the channel or\ - supybot.capabilities.default is set to\ - False, meaning that no commands are\ - allowed unless explicitly in your\ - capabilities. Either way, you can't do\ - what you want to do. - -### -# Determines what error messages the bot sends to people who try to do -# things in a channel that really should be done in private. -### -supybot.replies.requiresPrivacy: That operation cannot be done in a channel. - -### -# Determines what message the bot sends when it thinks you've -# encountered a bug that the developers don't know about. -### -supybot.replies.possibleBug: This may be a bug. If you think it is, please\ - file a bug report at . - -### -# A floating point number of seconds to throttle snarfed URLs, in order -# to prevent loops between two bots snarfing the same URLs and having -# the snarfed URL in the output of the snarf message. -# -# Default value: 10.0 -### -supybot.snarfThrottle: 10.0 - -### -# Determines the number of seconds between running the upkeep function -# that flushes (commits) open databases, collects garbage, and records -# some useful statistics at the debugging level. -# -# Default value: 3600 -### -supybot.upkeepInterval: 3600 - -### -# Determines whether the bot will periodically flush data and -# configuration files to disk. Generally, the only time you'll want to -# set this to False is when you want to modify those configuration files -# by hand and don't want the bot to flush its current version over your -# modifications. Do note that if you change this to False inside the -# bot, your changes won't be flushed. To make this change permanent, you -# must edit the registry yourself. -# -# Default value: True -### -supybot.flush: False - -### -# Determines what characters are valid for quoting arguments to commands -# in order to prevent them from being tokenized. -# -# Default value: " -### -supybot.commands.quotes: " - -### -# Determines whether the bot will allow nested commands, which rule. You -# definitely should keep this on. -# -# Default value: True -### -supybot.commands.nested: True - -### -# Determines what the maximum number of nested commands will be; users -# will receive an error if they attempt commands more nested than this. -# -# Default value: 10 -### -supybot.commands.nested.maximum: 10 - -### -# Supybot allows you to specify what brackets are used for your nested -# commands. Valid sets of brackets include [], <>, and {} (). [] has -# strong historical motivation, as well as being the brackets that don't -# require shift. <> or () might be slightly superior because they cannot -# occur in a nick. If this string is empty, nested commands will not be -# allowed in this channel. -# -# Default value: [] -### -supybot.commands.nested.brackets: [] - -### -# Supybot allows nested commands. Enabling this option will allow nested -# commands with a syntax similar to UNIX pipes, for example: 'bot: foo | -# bar'. -# -# Default value: False -### -supybot.commands.nested.pipeSyntax: False - -### -# Determines what commands have default plugins set, and which plugins -# are set to be the default for each of those commands. -### -supybot.commands.defaultPlugins.addcapability: Admin -supybot.commands.defaultPlugins.capabilities: User -supybot.commands.defaultPlugins.disable: Owner -supybot.commands.defaultPlugins.enable: Owner -supybot.commands.defaultPlugins.help: Misc -supybot.commands.defaultPlugins.ignore: Admin - -### -# Determines what plugins automatically get precedence over all other -# plugins when selecting a default plugin for a command. By default, -# this includes the standard loaded plugins. You probably shouldn't -# change this if you don't know what you're doing; if you do know what -# you're doing, then also know that this set is case-sensitive. -# -# Default value: Plugin Admin Misc User Owner Config Channel -### -supybot.commands.defaultPlugins.importantPlugins: Plugin Admin Misc User Owner Config Channel -supybot.commands.defaultPlugins.list: Misc -supybot.commands.defaultPlugins.reload: Owner -supybot.commands.defaultPlugins.removecapability: Admin -supybot.commands.defaultPlugins.unignore: Admin - -### -# Determines what commands are currently disabled. Such commands will -# not appear in command lists, etc. They will appear not even to exist. -# -# Default value: -### -supybot.commands.disabled: - -### -# Determines whether the bot will defend itself against command- -# flooding. -# -# Default value: True -### -supybot.abuse.flood.command: True - -### -# Determines how many commands users are allowed per minute. If a user -# sends more than this many commands in any 60 second period, he or she -# will be ignored for supybot.abuse.flood.command.punishment seconds. -# -# Default value: 12 -### -supybot.abuse.flood.command.maximum: 12 - -### -# Determines how many seconds the bot will ignore users who flood it -# with commands. -# -# Default value: 300 -### -supybot.abuse.flood.command.punishment: 300 - -### -# Determines whether the bot will defend itself against invalid command- -# flooding. -# -# Default value: True -### -supybot.abuse.flood.command.invalid: True - -### -# Determines how many invalid commands users are allowed per minute. If -# a user sends more than this many invalid commands in any 60 second -# period, he or she will be ignored for -# supybot.abuse.flood.command.invalid.punishment seconds. Typically, -# this value is lower than supybot.abuse.flood.command.maximum, since -# it's far less likely (and far more annoying) for users to flood with -# invalid commands than for them to flood with valid commands. -# -# Default value: 5 -### -supybot.abuse.flood.command.invalid.maximum: 5 - -### -# Determines how many seconds the bot will ignore users who flood it -# with invalid commands. Typically, this value is higher than -# supybot.abuse.flood.command.punishment, since it's far less likely -# (and far more annoying) for users to flood witih invalid commands than -# for them to flood with valid commands. -# -# Default value: 600 -### -supybot.abuse.flood.command.invalid.punishment: 600 - -### -# Determines the default length of time a driver should block waiting -# for input. -# -# Default value: 1.0 -### -supybot.drivers.poll: 1.0 - -### -# Determines what driver module the bot will use. Socket, a simple -# driver based on timeout sockets, is used by default because it's -# simple and stable. Twisted is very stable and simple, and if you've -# got Twisted installed, is probably your best bet. -# -# Default value: default -### -supybot.drivers.module: Twisted - -### -# Determines the maximum time the bot will wait before attempting to -# reconnect to an IRC server. The bot may, of course, reconnect earlier -# if possible. -# -# Default value: 300.0 -### -supybot.drivers.maxReconnectWait: 300.0 - -### -# Determines what directory configuration data is put into. -# -# Default value: conf -### -supybot.directories.conf: /var/lib/meetbot/<%= @name %>/conf - -### -# Determines what directory data is put into. -# -# Default value: data -### -supybot.directories.data: /var/lib/meetbot/<%= @name %>/data - -### -# Determines what directory temporary files are put into. -# -# Default value: tmp -### -supybot.directories.data.tmp: /var/lib/meetbot/<%= @name %>/data/tmp - -### -# Determines what directory backup data is put into. -# -# Default value: backup -### -supybot.directories.backup: /var/lib/meetbot/<%= @name %>/backup - -### -# Determines what directories the bot will look for plugins in. Accepts -# a comma-separated list of strings. This means that to add another -# directory, you can nest the former value and add a new one. E.g. you -# can say: bot: 'config supybot.directories.plugins [config -# supybot.directories.plugins], newPluginDirectory'. -# -# Default value: -### -supybot.directories.plugins: /usr/share/pyshared/supybot/plugins - -### -# Determines what directory the bot will store its logfiles in. -# -# Default value: logs -### -supybot.directories.log: /var/lib/meetbot/<%= @name %>/logs - -### -# Determines what plugins will be loaded. -# -# Default value: -### -supybot.plugins: MeetBot Admin ChannelLogger Misc Owner User Services Config Channel - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.Admin: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.Admin.public: True - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.Channel: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.Channel.public: True - -### -# Determines whether the bot will always try to rejoin a channel -# whenever it's kicked from the channel. -# -# Default value: True -### -supybot.plugins.Channel.alwaysRejoin: True - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.ChannelLogger: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.ChannelLogger.public: True - -### -# Determines whether logging is enabled. -# -# Default value: True -### -supybot.plugins.ChannelLogger.enable: True - -### -# Determines whether channel logfiles will be flushed anytime they're -# written to, rather than being buffered by the operating system. -# -# Default value: False -### -supybot.plugins.ChannelLogger.flushImmediately: False - -### -# Determines whether formatting characters (such as bolding, color, -# etc.) are removed when writing the logs to disk. -# -# Default value: True -### -supybot.plugins.ChannelLogger.stripFormatting: True - -### -# Determines whether the logs for this channel are timestamped with the -# timestamp in supybot.log.timestampFormat. -# -# Default value: True -### -supybot.plugins.ChannelLogger.timestamp: True - -### -# Determines what string a message should be prefixed with in order not -# to be logged. If you don't want any such prefix, just set it to the -# empty string. -# -# Default value: [nolog] -### -supybot.plugins.ChannelLogger.noLogPrefix: [nolog] - -### -# Determines whether the bot will automatically rotate the logs for this -# channel. The bot will rotate logs when the timestamp for the log -# changes. The timestamp is set according to the 'filenameTimestamp' -# configuration variable. -# -# Default value: False -### -supybot.plugins.ChannelLogger.rotateLogs: True - -### -# Determines how to represent the timestamp used for the filename in -# rotated logs. When this timestamp changes, the old logfiles will be -# closed and a new one started. The format characters for the timestamp -# are in the time.strftime docs at python.org. In order for your logs to -# be rotated, you'll also have to enable -# supybot.plugins.ChannelLogger.rotateLogs. -# -# Default value: %Y-%m-%d -### -supybot.plugins.ChannelLogger.filenameTimestamp: %Y-%m-%d - -### -# Determines whether the bot will partition its channel logs into -# separate directories based on different criteria. -# -# Default value: True -### -supybot.plugins.ChannelLogger.directories: True - -### -# Determines whether the bot will use a network directory if using -# directories. -# -# Default value: True -### -supybot.plugins.ChannelLogger.directories.network: True - -### -# Determines whether the bot will use a channel directory if using -# directories. -# -# Default value: True -### -supybot.plugins.ChannelLogger.directories.channel: True - -### -# Determines whether the bot will use a timestamp (determined by -# supybot.plugins.ChannelLogger.directories.timestamp.format) if using -# directories. -# -# Default value: False -### -supybot.plugins.ChannelLogger.directories.timestamp: False - -### -# Determines what timestamp format will be used in the directory -# stucture for channel logs if -# supybot.plugins.ChannelLogger.directories.timestamp is True. -# -# Default value: %B -### -supybot.plugins.ChannelLogger.directories.timestamp.format: %B - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.Config: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.Config.public: True - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.MeetBot: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.MeetBot.public: True - -### -# Enable configuration via the supybot config mechanism. -# -# Default value: False -### -supybot.plugins.MeetBot.enableSupybotBasedConfig: False - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.Bugtracker: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.Bugtracker.public: True - -### -# Determines whether the bug snarfer will be enabled, such that any -# Bugtracker URLs and bug ### seen in the channel will have their -# information reported into the channel. -# -# Default value: False -### -supybot.plugins.Bugtracker.bugSnarfer: True - -### -# Determines whether the CVE snarfer will be enabled, such that any CVE -# URLs and CVE-????-???? seen in the channel will have their information -# reported into the channel. -# -# Default value: False -### -supybot.plugins.Bugtracker.cveSnarfer: False - -### -# Determines whether the OOPS snarfer will be enabled, such that any -# OOPS ### seen in the channel will have their information reported into -# the channel. -# -# Default value: False -### -supybot.plugins.Bugtracker.oopsSnarfer: False - -### -# Determines the phrase to use when notifying the user that there is no -# information about that bugtracker site. -# -# Default value: I don't have a bugtracker %s. -### -supybot.plugins.Bugtracker.replyNoBugtracker: I don't have a bugtracker %s. - -### -# Determines the bugtracker to query when the snarf command is triggered -# -# Default value: launchpad -### -supybot.plugins.Bugtracker.snarfTarget: launchpad - -### -# Determines what bugtrackers will be added to the bot when it starts. -# -# Default value: -### -supybot.plugins.Bugtracker.bugtrackers: launchpad -supybot.plugins.Bugtracker.bugtrackers.launchpad.url: https://launchpad.net -supybot.plugins.Bugtracker.bugtrackers.launchpad.description: Launchpad -supybot.plugins.Bugtracker.bugtrackers.launchpad.trackertype: launchpad - -### -# Whether to send a message when a bug could not be found -# -# Default value: False -### -supybot.plugins.Bugtracker.replyWhenNotFound: False - -### -# Number of seconds to wait between repeated bug calls -# -# Default value: 60 -### -supybot.plugins.Bugtracker.repeatdelay: 60 - -### -# Whether to show the assignee in bug reports -# -# Default value: False -### -supybot.plugins.Bugtracker.showassignee: True - -### -# Show optional extneded bug information, specific to trackers -# -# Default value: False -### -supybot.plugins.Bugtracker.extended: False - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.Misc: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.Misc.public: True - -### -# Determines whether the bot will list private plugins with the list -# command if given the --private switch. If this is disabled, non-owner -# users should be unable to see what private plugins are loaded. -# -# Default value: True -### -supybot.plugins.Misc.listPrivatePlugins: True - -### -# Determines the format string for timestamps in the Misc.last command. -# Refer to the Python documentation for the time module to see what -# formats are accepted. If you set this variable to the empty string, -# the timestamp will not be shown. -# -# Default value: [%H:%M:%S] -### -supybot.plugins.Misc.timestampFormat: [%H:%M:%S] - -### -# Determines whether or not the timestamp will be included in the output -# of last when it is part of a nested command -# -# Default value: False -### -supybot.plugins.Misc.last.nested.includeTimestamp: False - -### -# Determines whether or not the nick will be included in the output of -# last when it is part of a nested command -# -# Default value: False -### -supybot.plugins.Misc.last.nested.includeNick: False - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.Owner: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.Owner.public: True - -### -# Determines what quit message will be used by default. If the quit -# command is called without a quit message, this will be used. If this -# value is empty, the nick of the person giving the quit command will be -# used. -# -# Default value: -### -supybot.plugins.Owner.quitMsg: - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.Services: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.Services.public: True - -### -# Determines what nicks the bot will use with services. -# -# Default value: -### -supybot.plugins.Services.nicks: <%= @nick %> - -### -# Determines what networks this plugin will be disabled on. -# -# Default value: QuakeNet -### -supybot.plugins.Services.disabledNetworks: QuakeNet - -### -# Determines whether the bot will not join any channels until it is -# identified. This may be useful, for instances, if you have a vhost -# that isn't set until you're identified, or if you're joining +r -# channels that won't allow you to join unless you identify. -# -# Default value: False -### -supybot.plugins.Services.noJoinsUntilIdentified: True - -### -# Determines how many seconds the bot will wait between successive GHOST -# attempts. -# -# Default value: 60 -### -supybot.plugins.Services.ghostDelay: 60 - -### -# Determines what nick the 'NickServ' service has. -# -# Default value: -### -supybot.plugins.Services.NickServ: NickServ - -### -# Determines what password the bot will use with NickServ. -# -# Default value: -### -supybot.plugins.Services.NickServ.password: -supybot.plugins.Services.NickServ.password.<%= @nick %>: <%= @nickpass %> - -### -# Determines what nick the 'ChanServ' service has. -# -# Default value: -### -supybot.plugins.Services.ChanServ: ChanServ - -### -# Determines what password the bot will use with ChanServ. -# -# Default value: -### -supybot.plugins.Services.ChanServ.password: - -### -# Determines whether the bot will request to get opped by the ChanServ -# when it joins the channel. -# -# Default value: False -### -supybot.plugins.Services.ChanServ.op: False - -### -# Determines whether the bot will request to get half-opped by the -# ChanServ when it joins the channel. -# -# Default value: False -### -supybot.plugins.Services.ChanServ.halfop: False - -### -# Determines whether the bot will request to get voiced by the ChanServ -# when it joins the channel. -# -# Default value: False -### -supybot.plugins.Services.ChanServ.voice: False - -### -# Determines whether this plugin is loaded by default. -### -supybot.plugins.User: True - -### -# Determines whether this plugin is publicly visible. -# -# Default value: True -### -supybot.plugins.User.public: True - -### -# Determines whether the bot will always load important plugins (Admin, -# Channel, Config, Misc, Owner, and User) regardless of what their -# configured state is. Generally, if these plugins are configured not to -# load, you didn't do it on purpose, and you still want them to load. -# Users who don't want to load these plugins are smart enough to change -# the value of this variable appropriately :) -# -# Default value: True -### -supybot.plugins.alwaysLoadImportant: True - -### -# Determines what databases are available for use. If this value is not -# configured (that is, if its value is empty) then sane defaults will be -# provided. -# -# Default value: anydbm cdb flat pickle -### -supybot.databases: - -### -# Determines what filename will be used for the users database. This -# file will go into the directory specified by the -# supybot.directories.conf variable. -# -# Default value: users.conf -### -supybot.databases.users.filename: users.conf - -### -# Determines how long it takes identification to time out. If the value -# is less than or equal to zero, identification never times out. -# -# Default value: 0 -### -supybot.databases.users.timeoutIdentification: 0 - -### -# Determines whether the bot will allow users to unregister their users. -# This can wreak havoc with already-existing databases, so by default we -# don't allow it. Enable this at your own risk. (Do also note that this -# does not prevent the owner of the bot from using the unregister -# command.) -# -# Default value: False -### -supybot.databases.users.allowUnregistration: False - -### -# Determines what filename will be used for the ignores database. This -# file will go into the directory specified by the -# supybot.directories.conf variable. -# -# Default value: ignores.conf -### -supybot.databases.ignores.filename: ignores.conf - -### -# Determines what filename will be used for the channels database. This -# file will go into the directory specified by the -# supybot.directories.conf variable. -# -# Default value: channels.conf -### -supybot.databases.channels.filename: channels.conf - -### -# Determines whether database-based plugins that can be channel-specific -# will be so. This can be overridden by individual channels. Do note -# that the bot needs to be restarted immediately after changing this -# variable or your db plugins may not work for your channel; also note -# that you may wish to set -# supybot.databases.plugins.channelSpecific.link appropriately if you -# wish to share a certain channel's databases globally. -# -# Default value: True -### -supybot.databases.plugins.channelSpecific: False - -### -# Determines what channel global (non-channel-specific) databases will -# be considered a part of. This is helpful if you've been running -# channel-specific for awhile and want to turn the databases for your -# primary channel into global databases. If -# supybot.databases.plugins.channelSpecific.link.allow prevents linking, -# the current channel will be used. Do note that the bot needs to be -# restarted immediately after changing this variable or your db plugins -# may not work for your channel. -# -# Default value: # -### -supybot.databases.plugins.channelSpecific.link: # - -### -# Determines whether another channel's global (non-channel-specific) -# databases will be allowed to link to this channel's databases. Do note -# that the bot needs to be restarted immediately after changing this -# variable or your db plugins may not work for your channel. -# -# Default value: True -### -supybot.databases.plugins.channelSpecific.link.allow: True - -### -# Determines whether CDB databases will be allowed as a database -# implementation. -# -# Default value: True -### -supybot.databases.types.cdb: True - -### -# Determines how often CDB databases will have their modifications -# flushed to disk. When the number of modified records is greater than -# this part of the number of unmodified records, the database will be -# entirely flushed to disk. -# -# Default value: 0.5 -### -supybot.databases.types.cdb.maximumModifications: 0.5 - -### -# Determines what will be used as the default banmask style. -# -# Default value: host user -### -supybot.protocols.irc.banmask: host user - -### -# Determines whether the bot will strictly follow the RFC; currently -# this only affects what strings are considered to be nicks. If you're -# using a server or a network that requires you to message a nick such -# as services@this.network.server then you you should set this to False. -# -# Default value: False -### -supybot.protocols.irc.strictRfc: False - -### -# Determines what user modes the bot will request from the server when -# it first connects. Many people might choose +i; some networks allow -# +x, which indicates to the auth services on those networks that you -# should be given a fake host. -# -# Default value: -### -supybot.protocols.irc.umodes: - -### -# Determines what vhost the bot will bind to before connecting to the -# IRC server. -# -# Default value: -### -supybot.protocols.irc.vhost: - -### -# Determines how many old messages the bot will keep around in its -# history. Changing this variable will not take effect until the bot is -# restarted. -# -# Default value: 1000 -### -supybot.protocols.irc.maxHistoryLength: 1000 - -### -# A floating point number of seconds to throttle queued messages -- that -# is, messages will not be sent faster than once per throttleTime -# seconds. -# -# Default value: 1.0 -### -supybot.protocols.irc.throttleTime: 1.0 - -### -# Determines whether the bot will send PINGs to the server it's -# connected to in order to keep the connection alive and discover -# earlier when it breaks. Really, this option only exists for debugging -# purposes: you always should make it True unless you're testing some -# strange server issues. -# -# Default value: True -### -supybot.protocols.irc.ping: True - -### -# Determines the number of seconds between sending pings to the server, -# if pings are being sent to the server. -# -# Default value: 120 -### -supybot.protocols.irc.ping.interval: 120 - -### -# Determines whether the bot will refuse duplicate messages to be queued -# for delivery to the server. This is a safety mechanism put in place to -# prevent plugins from sending the same message multiple times; most of -# the time it doesn't matter, unless you're doing certain kinds of -# plugin hacking. -# -# Default value: False -### -supybot.protocols.irc.queuing.duplicates: False - -### -# Determines how many seconds must elapse between JOINs sent to the -# server. -# -# Default value: 0.0 -### -supybot.protocols.irc.queuing.rateLimit.join: 0.0 - -### -# Determines how many bytes the bot will 'peek' at when looking through -# a URL for a doctype or title or something similar. It'll give up after -# it reads this many bytes, even if it hasn't found what it was looking -# for. -# -# Default value: 4096 -### -supybot.protocols.http.peekSize: 4096 - -### -# Determines what proxy all HTTP requests should go through. The value -# should be of the form 'host:port'. -# -# Default value: -### -supybot.protocols.http.proxy: - -### -# Determines whether the bot will ignore unregistered users by default. -# Of course, that'll make it particularly hard for those users to -# register or identify with the bot, but that's your problem to solve. -# -# Default value: False -### -supybot.defaultIgnore: False - -### -# A string that is the external IP of the bot. If this is the empty -# string, the bot will attempt to find out its IP dynamically (though -# sometimes that doesn't work, hence this variable). -# -# Default value: -### -supybot.externalIP: - -### -# Determines what the default timeout for socket objects will be. This -# means that *all* sockets will timeout when this many seconds has gone -# by (unless otherwise modified by the author of the code that uses the -# sockets). -# -# Default value: 10 -### -supybot.defaultSocketTimeout: 10 - -### -# Determines what file the bot should write its PID (Process ID) to, so -# you can kill it more easily. If it's left unset (as is the default) -# then no PID file will be written. A restart is required for changes to -# this variable to take effect. -# -# Default value: -### -supybot.pidFile: - -### -# Determines whether the bot will automatically thread all commands. -# -# Default value: False -### -supybot.debug.threadAllCommands: False - -### -# Determines whether the bot will automatically flush all flushers -# *very* often. Useful for debugging when you don't know what's breaking -# or when, but think that it might be logged. -# -# Default value: False -### -supybot.debug.flushVeryOften: False - -### -# Determines what the bot's logging format will be. The relevant -# documentation on the available formattings is Python's documentation -# on its logging module. -# -# Default value: %(levelname)s %(asctime)s %(name)s %(message)s -### -supybot.log.format: %(levelname)s %(asctime)s %(name)s %(message)s - -### -# Determines what the minimum priority level logged to file will be. Do -# note that this value does not affect the level logged to stdout; for -# that, you should set the value of supybot.log.stdout.level. Valid -# values are DEBUG, INFO, WARNING, ERROR, and CRITICAL, in order of -# increasing priority. -# -# Default value: INFO -### -supybot.log.level: INFO - -### -# Determines the format string for timestamps in logfiles. Refer to the -# Python documentation for the time module to see what formats are -# accepted. If you set this variable to the empty string, times will be -# logged in a simple seconds-since-epoch format. -# -# Default value: %Y-%m-%dT%H:%M:%S -### -supybot.log.timestampFormat: %Y-%m-%dT%H:%M:%S - -### -# Determines whether the bot will log to stdout. -# -# Default value: True -### -supybot.log.stdout: True - -### -# Determines whether the bot's logs to stdout (if enabled) will be -# colorized with ANSI color. -# -# Default value: False -### -supybot.log.stdout.colorized: True - -### -# Determines whether the bot will wrap its logs when they're output to -# stdout. -# -# Default value: True -### -supybot.log.stdout.wrap: True - -### -# Determines what the bot's logging format will be. The relevant -# documentation on the available formattings is Python's documentation -# on its logging module. -# -# Default value: %(levelname)s %(asctime)s %(message)s -### -supybot.log.stdout.format: %(levelname)s %(asctime)s %(message)s - -### -# Determines what the minimum priority level logged will be. Valid -# values are DEBUG, INFO, WARNING, ERROR, and CRITICAL, in order of -# increasing priority. -# -# Default value: INFO -### -supybot.log.stdout.level: INFO - -### -# Determines whether the bot will separate plugin logs into their own -# individual logfiles. -# -# Default value: False -### -supybot.log.plugins.individualLogfiles: False - -### -# Determines what the bot's logging format will be. The relevant -# documentation on the available formattings is Python's documentation -# on its logging module. -# -# Default value: %(levelname)s %(asctime)s %(message)s -### -supybot.log.plugins.format: %(levelname)s %(asctime)s %(message)s - -### -# These are the capabilities that are given to everyone by default. If -# they are normal capabilities, then the user will have to have the -# appropriate anti-capability if you want to override these -# capabilities; if they are anti-capabilities, then the user will have -# to have the actual capability to override these capabilities. See -# docs/CAPABILITIES if you don't understand why these default to what -# they do. -# -# Default value: -owner -admin -trusted -### -supybot.capabilities: -owner -admin -trusted - -### -# Determines whether the bot by default will allow users to have a -# capability. If this is disabled, a user must explicitly have the -# capability for whatever command he wishes to run. -# -# Default value: True -### -supybot.capabilities.default: True diff --git a/templates/systemd.erb b/templates/systemd.erb deleted file mode 100644 index 9a39901..0000000 --- a/templates/systemd.erb +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description=<%= @name %> Meetbot Server -After=network.target - -[Service] -Type=simple -Environment=PYTHONPATH=/var/lib/meetbot/<%= @name %> -Group=meetbot -User=meetbot -WorkingDirectory=/var/lib/meetbot/<%= @name %> -ExecStart=/usr/bin/python /usr/bin/supybot /var/lib/meetbot/<%= @name %>.conf - -[Install] -WantedBy=multi-user.target diff --git a/templates/upstart.erb b/templates/upstart.erb deleted file mode 100644 index a32b496..0000000 --- a/templates/upstart.erb +++ /dev/null @@ -1,9 +0,0 @@ -description "<%= name %> Meetbot Server" -author "Andrew Hutchings " - -start on (local-filesystem and net-device-up) -stop on runlevel [!2345] - -env PYTHONPATH=/var/lib/meetbot/<%= name %> - -exec start-stop-daemon --start --chdir /var/lib/meetbot/openstack --chuid meetbot --name meetbot --startas /usr/bin/python /usr/bin/supybot /var/lib/meetbot/<%= name %>.conf diff --git a/templates/vhost.erb b/templates/vhost.erb deleted file mode 100644 index e5c4643..0000000 --- a/templates/vhost.erb +++ /dev/null @@ -1,34 +0,0 @@ -# ************************************ -# Managed by Puppet -# ************************************ - -NameVirtualHost <%= @_vhost_name %>:<%= @port %> -:<%= @port %>> - ServerName <%= @srvname %> -<% if @serveraliases.is_a? Array -%> -<% @serveraliases.each do |name| -%><%= " ServerAlias #{name}\n" %><% end -%> -<% elsif ! ['', nil].include?(@serveraliases) -%> -<%= " ServerAlias #{@serveraliases}" %> -<% end -%> - DocumentRoot <%= @docroot %> - - ForceType text/plain - AddDefaultCharset UTF-8 - - > - Options <%= @options %> - AllowOverride None - Order allow,deny - allow from all - = 2.4> - Require all granted - - - -<%= @vhost_extra %> - - ErrorLog /var/log/apache2/<%= @srvname %>_error.log - LogLevel warn - CustomLog /var/log/apache2/<%= @srvname %>_access.log combined - ServerSignature Off -