diff --git a/peru/runtime.py b/peru/runtime.py index d8e2410..d53f3b4 100644 --- a/peru/runtime.py +++ b/peru/runtime.py @@ -85,11 +85,17 @@ def _set_paths(self, args, env): self.peru_file = find_project_file(os.getcwd(), basename) self.sync_dir = os.path.dirname(self.peru_file) - self.state_dir = os.path.abspath( - args['--state-dir']) if args['--state-dir'] else os.path.join(self.sync_dir, '.peru') + if args['--state-dir']: + self.state_dir = os.path.abspath(args['--state-dir']) + else: + self.state_dir = os.path.join(self.sync_dir, '.peru') - self.cache_dir = os.path.abspath( - args['--cache-dir']) if args['--cache-dir'] else os.path.join(self.state_dir, 'cache') + if args['--cache-dir']: + self.cache_dir = os.path.abspath(args['--cache-dir']) + elif env.get('PERU_CACHE_DIR'): + self.cache_dir = env.get('PERU_CACHE_DIR') + else: + self.cache_dir = os.path.join(self.state_dir, 'cache') def tmp_dir(self): dir = tempfile.TemporaryDirectory(dir=self._tmp_root) diff --git a/tests/test_paths.py b/tests/test_paths.py index c236d2d..95b1eaa 100644 --- a/tests/test_paths.py +++ b/tests/test_paths.py @@ -46,11 +46,6 @@ def test_unmodified_sync(self): shared.run_peru_command(['sync'], self.cwd) self.assert_success(self.project_dir, self.state_dir, self.cache_dir) - def test_peru_file_and_sync_dir_must_be_set_together(self): - for command in [['--sync-dir=junk', 'sync'], ['--file=junk', 'sync']]: - with self.assertRaises(CommandLineError): - shared.run_peru_command(command, cwd=self.cwd) - def test_file_and_file_basename_incompatible(self): with self.assertRaises(CommandLineError): shared.run_peru_command([