lib/prick/constants.rb in prick-0.41.0 vs lib/prick/constants.rb in prick-0.42.0
- old
+ new
@@ -8,11 +8,11 @@
# Shared files (part of the installation)
SHARE_PATH = "#{File.dirname(File.dirname(__dir__))}/lib/prick/share"
LIBEXEC_PATH = "#{File.dirname(File.dirname(__dir__))}/lib/prick/libexec"
- # Project directories
+ # Project directories (relative to PRICK_DIR)
DIRS = [
MIGRATION_DIR = "migration",
SCHEMA_DIR = "schema",
SCHEMA_PRICK_DIR = "#{SCHEMA_DIR}/prick",
PUBLIC_DIR = "#{SCHEMA_DIR}/public",
@@ -24,37 +24,52 @@
TMP_DIR = "tmp",
CLONE_DIR = "tmp/clones",
SPEC_DIR = "spec"
]
- # Prick project root directory
- PRICK_DIR = Dir.getwd
-
# Search path for executables
# PRICK_PATH = "#{ENV['PATH']}:#{PRICK_DIR}/#{BIN_DIR}:#{PRICK_DIR}/#{LIBEXEC_DIR}"
- # Project file
+ # Project filename
PRICK_PROJECT_FILE = "prick.yml"
- PRICK_PROJECT_PATH = PRICK_PROJECT_FILE
+ # Project root directory. nil when running rspec
+ if !defined?(PRICK_DIR)
+ PRICK_DIR = begin
+ dir = Dir.getwd
+ while dir != "/" && !File.exist?("#{dir}/prick.yml")
+ dir = File.dirname(dir)
+ end
+ if dir == "/"
+ defined?(RSpec) or raise ArgumentError, "Can't find prick project directory"
+ dir = ""
+ end
+ dir
+ end
+ end
+
+ # Project file path
+ PRICK_PROJECT_PATH = File.join(PRICK_DIR, PRICK_PROJECT_FILE)
+
# Environment file
PRICK_ENVIRONMENT_FILE = "prick.environment.yml"
- PRICK_ENVIRONMENT_PATH = PRICK_ENVIRONMENT_FILE
+ PRICK_ENVIRONMENT_PATH = File.join(PRICK_DIR, PRICK_ENVIRONMENT_FILE)
+
# TODO: Move to var/cache
# State file
PRICK_STATE_FILE = ".prick.state.yml"
- PRICK_STATE_PATH = PRICK_STATE_FILE
+ PRICK_STATE_PATH = File.join(PRICK_DIR, PRICK_STATE_FILE)
# Fox state file (contains anchors and table sizes)
FOX_STATE_FILE = ".fox-state.yml"
- FOX_STATE_PATH = FOX_STATE_FILE
+ FOX_STATE_PATH = File.join(PRICK_DIR, FOX_STATE_FILE)
# PgMeta snapshot. Is deleted at the start of each build
PG_META_STATE_FILE = ".pg_meta-state.yml"
- PG_META_STATE_PATH = PG_META_STATE_FILE
+ PG_META_STATE_PATH = File.join(PRICK_DIR, PG_META_STATE_FILE)
# Reflections file
REFLECTIONS_FILE = "reflections.yml"
REFLECTIONS_PATH = File.join(SCHEMA_DIR, REFLECTIONS_FILE)
@@ -64,11 +79,10 @@
# Rspec temporary directory
SPEC_TMP_DIR = "spec"
SPEC_TMP_PATH = File.join(TMP_DIR, SPEC_TMP_DIR)
-
# Migration diff files
DIFF_FILE = "diff.sql"
DIFF_FILES = [
BEFORE_TABLES_DIFF_FILE = "diff.before-tables.sql",
TABLES_DIFF_FILE = "diff.tables.sql",
@@ -80,10 +94,10 @@
# Not in use:
# The project state file
PROJECT_STATE_FILE = ".prick-project"
- PROJECT_STATE_PATH = PROJECT_STATE_FILE
+ PROJECT_STATE_PATH = File.join(PRICK_DIR, PROJECT_STATE_FILE)
# The the .prick-migration file
PRICK_MIGRATION_FILE = ".prick-migration"
PRICK_MIGRATION_PATH = File.join(MIGRATION_DIR, PRICK_MIGRATION_FILE)