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)