Class: Focuslight::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/focuslight/cli.rb

Constant Summary collapse

BASE_DIR =
File.join(Dir.pwd, "focuslight")
DATA_DIR =
ENV["DATADIR"] || File.join(BASE_DIR, "data")
DBURL =
ENV["DBURL"] || "sqlite://#{File.join(DATA_DIR, "gforecast.db")}"
LOG_DIR =
File.join(BASE_DIR, "log")
LOG_FILE =
ENV["LOG_FILE"] || File.join(LOG_DIR, "application.log")
LOG_LEVEL =
ENV["LOG_LEVEL"] || "warn"
ENV_FILE =
File.join(BASE_DIR, ".env")
PROCFILE =
File.join(BASE_DIR, "Procfile")
CONFIGRU_FILE =
File.join(BASE_DIR, "config.ru")
DEFAULT_DOTENV =
<<-EOS
DATADIR=#{DATA_DIR}
PORT=5125
HOST=0.0.0.0
# FRONT_PROXY
# ALLOW_FROM
# 1MIN_METRICS=n
FLOAT_SUPPORT=n # y
DBURL=#{DBURL}
# DBURL=mysql2://root:@localhost/focuslight
# RRDCACHED=n
# MOUNT=/
LOG_PATH=#{LOG_FILE}
LOG_LEVEL=#{LOG_LEVEL}
EOS
DEFAULT_PROCFILE =
<<-EOS
web: unicorn -E production -p $PORT -o $HOST
worker1: focuslight longer
worker2: focuslight shorter
EOS

Instance Method Summary collapse

Instance Method Details

#initObject



52
53
54
55
56
# File 'lib/focuslight/cli.rb', line 52

def init
  Dotenv.load
  require "focuslight/init"
  Focuslight::Init.run
end

#longerObject



66
67
68
69
70
# File 'lib/focuslight/cli.rb', line 66

def longer
  Dotenv.load
  require "focuslight/worker"
  Focuslight::Worker.run(interval: 300, target: :normal)
end

#newObject



43
44
45
46
47
48
49
# File 'lib/focuslight/cli.rb', line 43

def new
  FileUtils.mkdir_p(LOG_DIR)
  File.write ENV_FILE, DEFAULT_DOTENV
  File.write PROCFILE, DEFAULT_PROCFILE
  configru_file = File.expand_path("../../../config.ru", __FILE__)
  FileUtils.copy(configru_file, CONFIGRU_FILE)
end

#shorterObject



73
74
75
76
77
# File 'lib/focuslight/cli.rb', line 73

def shorter
  Dotenv.load
  require "focuslight/worker"
  Focuslight::Worker.run(interval: 60, target: :short)
end

#startObject



59
60
61
62
63
# File 'lib/focuslight/cli.rb', line 59

def start
  Dotenv.load
  require "foreman/cli"
  Foreman::CLI.new.invoke(:start, [], {})
end