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 =
File.join(BASE_DIR, "data")
DBURL =
"sqlite://#{File.join(DATA_DIR, "gforecast.db")}"
LOG_DIR =
File.join(BASE_DIR, "log")
LOG_FILE =
File.join(LOG_DIR, "application.log")
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=warn
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



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

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

#longerObject



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

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

#newObject



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

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



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

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

#startObject



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

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