summaryrefslogtreecommitdiffstats
path: root/scripts/lib
diff options
context:
space:
mode:
authorChristopher Larson <chris_larson@mentor.com>2018-06-22 02:09:34 +0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-03 08:24:34 +0100
commit7aece42c6b4744c54a8eb05ff90bd3bf4fbb14a3 (patch)
tree991d706b0e3833a29f1f89146adbcb1db3d44ee6 /scripts/lib
parenta0d74767f7bd18c853df6b0be162363076d8f965 (diff)
downloadopenembedded-core-7aece42c6b4744c54a8eb05ff90bd3bf4fbb14a3.tar.gz
recipetool: add 'edit' subcommand
This edits the recipe and any bbappends for the specified target. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/recipetool/edit.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/scripts/lib/recipetool/edit.py b/scripts/lib/recipetool/edit.py
new file mode 100644
index 0000000000..c4789a9994
--- /dev/null
+++ b/scripts/lib/recipetool/edit.py
@@ -0,0 +1,54 @@
+# Recipe creation tool - edit plugin
+#
+# This sub-command edits the recipe and appends for the specified target
+#
+# Example: recipetool edit busybox
+#
+# Copyright (C) 2018 Mentor Graphics Corporation
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import argparse
+import errno
+import logging
+import os
+import re
+import subprocess
+import sys
+import scriptutils
+
+
+logger = logging.getLogger('recipetool')
+tinfoil = None
+
+
+def tinfoil_init(instance):
+ global tinfoil
+ tinfoil = instance
+
+
+def edit(args):
+ import oe.recipeutils
+
+ recipe_path = tinfoil.get_recipe_file(args.target)
+ appends = tinfoil.get_file_appends(recipe_path)
+
+ return scriptutils.run_editor([recipe_path] + appends, logger)
+
+
+def register_commands(subparsers):
+ parser = subparsers.add_parser('edit',
+ help='Edit the recipe and appends for the specified target. This obeys $VISUAL if set, otherwise $EDITOR, otherwise vi.')
+ parser.add_argument('target', help='Target recipe/provide to edit')
+ parser.set_defaults(func=edit, parserecipes=True)