summaryrefslogtreecommitdiffstats
path: root/plugins/puppet/provider/mysql_schema/mysql.rb
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/puppet/provider/mysql_schema/mysql.rb')
-rw-r--r--plugins/puppet/provider/mysql_schema/mysql.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/plugins/puppet/provider/mysql_schema/mysql.rb b/plugins/puppet/provider/mysql_schema/mysql.rb
new file mode 100644
index 0000000..2b582c1
--- /dev/null
+++ b/plugins/puppet/provider/mysql_schema/mysql.rb
@@ -0,0 +1,29 @@
+require 'puppet/provider/package'
+
+Puppet::Type.type(:mysql_schema).provide(:mysql) do
+
+ desc "Create a Mysql schema."
+ commands :mysqladmin => '/usr/bin/mysqladmin'
+ commands :mysql => '/usr/bin/mysql'
+
+ def create
+ # Pipe the ddl to mysql
+ open("| #{command(:mysql)} -u root -p#{@resource[:rootpw]} #{@resource[:db]}", "w") do |pipe|
+ pipe.puts(File.read(@resource[:name]))
+ end
+ end
+
+ def destroy
+ #noop
+ end
+
+ def exists?
+ if mysql("-u", "root", "-p", @resource[:rootpw], "-NBe", "show tables", @resource[:db]).empty?
+ false
+ else
+ true
+ end
+ end
+end
+
+