summaryrefslogtreecommitdiffstats
path: root/scripts/lib/recipetool/create.py
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-07-20 16:48:13 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-07-21 08:44:25 +0100
commit0d72748e81186d38511cd691521cbd9fa7336879 (patch)
treef598056e76017584a69bb0882af47383a75e55b4 /scripts/lib/recipetool/create.py
parentb5e42005e96d0c3ed5da72007f6c41722332afe6 (diff)
downloadpoky-0d72748e81186d38511cd691521cbd9fa7336879.tar.gz
recipetool: create: refactor code for ensuring npm is available
Across devtool and recipetool we had an ugly set of code for ensuring that we can call an npm binary, and much of that ugliness was a result of not being able to run build tasks when tinfoil was active - if recipetool found that npm was required and we didn't know beforehand (e.g. we're fetching from a plain git repository as opposed to an npm:// URL where it's obvious) then it had to exit and return a special result code, so that devtool knew it needed to build nodejs-native and then call recipetool again. Now that we are using real build tasks to fetch and unpack, we can drop most of this and move the code to the one place where it's still needed (i.e. create_npm where we potentially have to deal with node.js code in a plain source repository). (From OE-Core rev: 8450de16ddb02d863204b411a94c6d84e0f88817) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/recipetool/create.py')
-rw-r--r--scripts/lib/recipetool/create.py21
1 files changed, 1 insertions, 20 deletions
diff --git a/scripts/lib/recipetool/create.py b/scripts/lib/recipetool/create.py
index 2a6a28ba91..359eb9adfc 100644
--- a/scripts/lib/recipetool/create.py
+++ b/scripts/lib/recipetool/create.py
@@ -1152,22 +1152,6 @@ def convert_rpm_xml(xmlfile):
1152 return values 1152 return values
1153 1153
1154 1154
1155def check_npm(tinfoil, debugonly=False):
1156 try:
1157 rd = tinfoil.parse_recipe('nodejs-native')
1158 except bb.providers.NoProvider:
1159 # We still conditionally show the message and exit with the special
1160 # return code, otherwise we can't show the proper message for eSDK
1161 # users
1162 log_error_cond('nodejs-native is required for npm but is not available - you will likely need to add a layer that provides nodejs', debugonly)
1163 sys.exit(14)
1164 bindir = rd.getVar('STAGING_BINDIR_NATIVE')
1165 npmpath = os.path.join(bindir, 'npm')
1166 if not os.path.exists(npmpath):
1167 log_error_cond('npm required to process specified source, but npm is not available - you need to run bitbake -c addto_recipe_sysroot nodejs-native first', debugonly)
1168 sys.exit(14)
1169 return bindir
1170
1171def register_commands(subparsers): 1155def register_commands(subparsers):
1172 parser_create = subparsers.add_parser('create', 1156 parser_create = subparsers.add_parser('create',
1173 help='Create a new recipe', 1157 help='Create a new recipe',
@@ -1185,8 +1169,5 @@ def register_commands(subparsers):
1185 parser_create.add_argument('--keep-temp', action="store_true", help='Keep temporary directory (for debugging)') 1169 parser_create.add_argument('--keep-temp', action="store_true", help='Keep temporary directory (for debugging)')
1186 parser_create.add_argument('--fetch-dev', action="store_true", help='For npm, also fetch devDependencies') 1170 parser_create.add_argument('--fetch-dev', action="store_true", help='For npm, also fetch devDependencies')
1187 parser_create.add_argument('--devtool', action="store_true", help=argparse.SUPPRESS) 1171 parser_create.add_argument('--devtool', action="store_true", help=argparse.SUPPRESS)
1188 # FIXME I really hate having to set parserecipes for this, but given we may need 1172 parser_create.set_defaults(func=create_recipe)
1189 # to call into npm (and we don't know in advance if we will or not) and in order
1190 # to do so we need to know npm's recipe sysroot path, there's not much alternative
1191 parser_create.set_defaults(func=create_recipe, parserecipes=True)
1192 1173