Class: RuneBlog::Publishing
- Inherits:
-
Object
- Object
- RuneBlog::Publishing
- Defined in:
- lib/runeblog_version.rb,
lib/publish.rb
Constant Summary collapse
- BadRemoteLogin =
Exception.new("Can't login remotely")
- BadRemotePerms =
Exception.new("Bad remote permissions")
Instance Attribute Summary collapse
-
#docroot ⇒ Object
readonly
Returns the value of attribute docroot.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
-
#server ⇒ Object
readonly
Returns the value of attribute server.
-
#user ⇒ Object
readonly
Returns the value of attribute user.
Instance Method Summary collapse
- #check_new_posts ⇒ Object
-
#initialize(view) ⇒ Publishing
constructor
A new instance of Publishing.
- #publish ⇒ Object
- #remote_login? ⇒ Boolean
- #remote_permissions? ⇒ Boolean
- #to_h ⇒ Object
- #url ⇒ Object
Constructor Details
#initialize(view) ⇒ Publishing
Returns a new instance of Publishing.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/publish.rb', line 14 def initialize(view) log!(enter: __method__, args: [view.to_s]) @blog = RuneBlog.blog dir0 = @blog.root/:views/view/"themes/standard/" # CHANGED dir = @blog.root/:views/view/:data gfile = dir/"global.lt3" return unless File.exist?(gfile) # FIXME Hackish as hell live = get_live_vars(gfile) @user = live.vars["publish.user"] @server = live.vars["publish.server"] @docroot = live.vars["publish.docroot"] @path = live.vars["publish.path"] @proto = live.vars["publish.proto"] end |
Instance Attribute Details
#docroot ⇒ Object (readonly)
Returns the value of attribute docroot.
9 10 11 |
# File 'lib/publish.rb', line 9 def docroot @docroot end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
9 10 11 |
# File 'lib/publish.rb', line 9 def path @path end |
#server ⇒ Object (readonly)
Returns the value of attribute server.
9 10 11 |
# File 'lib/publish.rb', line 9 def server @server end |
#user ⇒ Object (readonly)
Returns the value of attribute user.
9 10 11 |
# File 'lib/publish.rb', line 9 def user @user end |
Instance Method Details
#check_new_posts ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/publish.rb', line 43 def check_new_posts # How do we know?? # If it's newly published: # autopost on reddit (if enabled and not already) # " " twitter (if enabled and not already) # " " facebook (if enabled and not already) end |
#publish ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/publish.rb', line 51 def publish log!(enter: __method__, level: 1) dir = @docroot/@path view_name = @blog.view.name viewpath = dir cmd = "rsync -r -z #{@blog.root}/views/#{@blog.view}/remote/ #@user@#@server:#{viewpath}/" system!(cmd) check_new_posts dump("#{@blog.view} at #{Time.now}", "#{@blog.view.dir}/last_published") true end |
#remote_login? ⇒ Boolean
63 64 65 66 67 68 69 |
# File 'lib/publish.rb', line 63 def remote_login? log!(enter: __method__) cmd = "ssh -o BatchMode=yes #@user@#@server -x date >/dev/null 2>&1" result = system(cmd) return nil unless result true end |
#remote_permissions? ⇒ Boolean
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/publish.rb', line 71 def log!(enter: __method__) dir = @docroot/@path temp = @path/"__only_testing" try1 = system("ssh -o BatchMode=yes -o ConnectTimeout=1 #@user@#@server -x mkdir -p #{temp} >/dev/null 2>&1") return nil unless try1 try2 = system("ssh -o BatchMode=yes -o ConnectTimeout=1 #@user@#@server -x rmdir #{temp} >/dev/null 2>&1") return nil unless try2 true end |
#to_h ⇒ Object
31 32 33 34 35 |
# File 'lib/publish.rb', line 31 def to_h log!(enter: __method__, level: 3) {user: @user, server: @server, docroot: @docroot, path: @path, proto: @proto} end |
#url ⇒ Object
37 38 39 40 41 |
# File 'lib/publish.rb', line 37 def url log!(enter: __method__, level: 3) vname = @blog.view.name # .gsub(/_/, "\\_") url = "#@proto://#@server/#@path" # /#{vname}" end |