From b80bc0b83e94a6556d07449c066e3ace3720171d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= Date: Wed, 24 Mar 2021 05:07:30 +0000 Subject: [PATCH] Fix package.json. --- ognibuild/buildsystem.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/ognibuild/buildsystem.py b/ognibuild/buildsystem.py index 759ec01..9e627fb 100644 --- a/ognibuild/buildsystem.py +++ b/ognibuild/buildsystem.py @@ -20,6 +20,7 @@ import logging import os import re +import shlex import stat from typing import Optional, Tuple import warnings @@ -679,9 +680,14 @@ class Npm(BuildSystem): def __init__(self, path): import json + self.path = path + with open(path, "r") as f: self.package = json.load(f) + def __repr__(self): + return "%s(%r)" % (type(self).__name__, self.path) + def get_declared_dependencies(self, session, fixers=None): if "devDependencies" in self.package: for name, unused_version in self.package["devDependencies"].items(): @@ -695,6 +701,30 @@ class Npm(BuildSystem): self.setup(resolver) run_with_build_fixers(session, ["npm", "pack"], fixers) + def test(self, session, resolver, fixers): + self.setup(resolver) + test_script = self.package['scripts'].get('test') + if test_script: + run_with_build_fixers(session, shlex.split(test_script), fixers) + else: + raise NotImplementedError + + def build(self, session, resolver, fixers): + self.setup(resolver) + build_script = self.package['scripts'].get('build') + if build_script: + run_with_build_fixers(session, shlex.split(build_script), fixers) + else: + raise NotImplementedError + + def clean(self, session, resolver, fixers): + self.setup(resolver) + clean_script = self.package['scripts'].get('clean') + if clean_script: + run_with_build_fixers(session, shlex.split(clean_script), fixers) + else: + raise NotImplementedError + @classmethod def probe(cls, path): if os.path.exists(os.path.join(path, "package.json")):