OSDN Git Service

Regular updates
[twpd/master.git] / do.md
diff --git a/do.md b/do.md
new file mode 100644 (file)
index 0000000..008fadb
--- /dev/null
+++ b/do.md
@@ -0,0 +1,93 @@
+---
+title: Do gem
+category: Ruby libraries
+---
+
+ * [DAddYE/do](https://github.com/DAddYE/do)
+
+### Connection
+
+    server = DO::Server.new('srv1', 'srv1.domain.local', 'root', :key => 
+        %w[srv1.pem]
+    
+### Run
+    server.run 'uname'
+    # root@srv1 ~ # uname
+    # Linux
+    
+    server.run 'uname', '-a'
+    # root@srv1 ~ # uname -a
+    # Linux srv1.lipsiasoft.net 2.6.18-194.32.1.el5  x86_64 x86_64 x86_64 GNU/Linux
+    
+    server.run 'mysqladmin -u root -p password "oldone"', 'newpassword'
+    # root@srv1 ~ # mysqladmin -u root -p password 'oldone'
+    # Enter password: oldone
+    # mysqladmin: connect to server at 'localhost' failed
+    # error: 'Access denied for user 'root'@'localhost' (using password: YES)'
+    
+### Files
+
+    server.exist?('~/.ssh')
+    # root@srv1 ~ # test -e ~/.ssh && echo True
+    # => true
+    
+    server.read('/etc/redhat-release')
+    # root@srv1 ~ # cat /etc/redhat-release
+    # => "CentOS release 5.5 (Final)"
+
+### Upload/download
+
+    server.upload '/tmp/file', '/tmp/foo'
+    # root@srv1 ~ # upload from '/tmp/file' to '/tmp/foo'
+    
+    server.download '/tmp/foo', '/tmp/file2'
+    # root@srv1 ~ # download from '/tmp/foo' to '/tmp/file2'
+    
+### Replace
+
+    server.replace :all, 'new content', '/tmp/file'
+    # root@srv1 ~ # replace all in '/tmp/foo'
+    
+    server.read('/tmp/foo')
+    # root@srv1 ~ # cat /tmp/foo
+    # => "new content"
+    
+### Replace via regex
+
+    server.replace /content$/, 'changed content', '/tmp/foo'
+    # root@srv1 ~ # replace /content$/ in '/tmp/foo'
+    
+    server.read('/tmp/foo')
+    # root@srv1 ~ # cat /tmp/foo
+    # => "new changed content"
+    
+### Append
+
+    server.append('appended', '/tmp/foo')
+    # root@srv1 ~ # append to 'bottom' in '/tmp/foo'
+    
+    server.read('/tmp/foo')
+    # root@srv1 ~ # cat /tmp/foo
+    # => "new changed contentappended"
+    
+### Append to top
+
+    server.append('---', '/tmp/foo', :top)
+    # root@srv1 ~ # append to 'top' in '/tmp/foo'
+    
+    server.read('/tmp/foo')
+    # root@srv1 ~ # cat /tmp/foo
+    # => "---new changed contentappended"
+    
+### Prompt
+    
+    server.ask "Please choose"
+    # root@srv1 ~ # Please choose: foo
+    # => "foo"
+    
+    server.yes? "Do you want to proceed"
+    # root@srv1 ~ # Do you want to proceed? (y/n): y
+    # => 0
+    
+    server.wait
+    # Press ENTER to continue...