Sha256: 72a28ab47b77fff573b8e2c3e2a3cd2085bf2407e4d5be5810e89d76fb041e38

Contents?: true

Size: 1.45 KB

Versions: 1

Compression:

Stored size: 1.45 KB

Contents

#!/usr/bin/env ruby

# $LOAD_PATH << "./lib"

require 'global'
require 'rubytext' if curses?
require 'readline'

require 'repl'

# trap("INT") { }

include RuneBlog::REPL

def get_argv
  return nil if ARGV.size == 0
  cmd = ARGV[0..1].join(" ")
  arg = ARGV[2]
  [cmd, arg]
end

def mainloop
  if curses?
    print fx("blog> ", Red)
    cmd = STDSCR.gets
  else
    cmd = Readline.readline(red("\nblog> "), true)
  end
  cmd_quit(nil) if cmd.nil?   # ^D
  cmd.chomp!
  return if cmd.empty?   # CR does nothing
  meth, params = RuneBlog::REPL.choose_method(cmd)
  old, str = send(meth, params)
  puts str if old && ! str.nil?
rescue => err
  puts err
end


###########

RubyText.start(log: "blogcmd.txt", fg: Blue, bg: White)
RubyText.set(:_echo)

X.stdscr.keypad(true)

STDOUT.sync = true

cmd, arg = get_argv

if ! RuneBlog.exist?
  print "No blog found. Create new one? (y/n) "
  resp = gets.chomp
  if resp == "y"
    RuneBlog.create_new_blog
  else
    exit
  end
end

@blog = RuneBlog.new

# STDSCR.clear if curses?

if cmd.nil?   # REPL
# system("tput smcup")  # see: tput rmcup in cmd_quit

  puts fx("\n  RuneBlog", :bold), fx(" v #{RuneBlog::VERSION}", Red)
  loop { mainloop }
# STDSCR.clear
  RubyText.stop
  system("tput clear")
  puts
else  # one command
  file = File.open("/dev/tty")
  STDIN.reopen(file)    # avoid ARGF dumbness
  cmd = ARGV.join(" ")
  meth, params = RuneBlog::REPL.choose_method(cmd)
  str = send(meth, params)
  puts str unless str.nil?
  puts
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
runeblog-0.1.5 bin/blog