mirror of
https://github.com/YosysHQ/sby.git
synced 2025-04-26 23:15:50 +00:00
Add --dumptaskinfo option to output some .sby metadata as json
This commit is contained in:
parent
a190994098
commit
6daa434d85
2 changed files with 120 additions and 92 deletions
|
@ -17,9 +17,9 @@
|
|||
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
#
|
||||
|
||||
import argparse, os, sys, shutil, tempfile, re
|
||||
import argparse, json, os, sys, shutil, tempfile, re
|
||||
##yosys-sys-path##
|
||||
from sby_core import SbyTask, SbyAbort, process_filename
|
||||
from sby_core import SbyConfig, SbyTask, SbyAbort, process_filename
|
||||
import time, platform
|
||||
|
||||
class DictAction(argparse.Action):
|
||||
|
@ -72,6 +72,8 @@ parser.add_argument("--dumptasks", action="store_true", dest="dump_tasks",
|
|||
help="print the list of tasks")
|
||||
parser.add_argument("--dumpdefaults", action="store_true", dest="dump_defaults",
|
||||
help="print the list of default tasks")
|
||||
parser.add_argument("--dumptaskinfo", action="store_true", dest="dump_taskinfo",
|
||||
help="output a summary of tasks as JSON")
|
||||
parser.add_argument("--dumpfiles", action="store_true", dest="dump_files",
|
||||
help="print the list of source files")
|
||||
parser.add_argument("--setup", action="store_true", dest="setupmode",
|
||||
|
@ -102,6 +104,7 @@ dump_cfg = args.dump_cfg
|
|||
dump_tags = args.dump_tags
|
||||
dump_tasks = args.dump_tasks
|
||||
dump_defaults = args.dump_defaults
|
||||
dump_taskinfo = args.dump_taskinfo
|
||||
dump_files = args.dump_files
|
||||
reusedir = False
|
||||
setupmode = args.setupmode
|
||||
|
@ -367,6 +370,21 @@ if dump_tasks or dump_defaults or dump_tags:
|
|||
print(name)
|
||||
sys.exit(0)
|
||||
|
||||
if dump_taskinfo:
|
||||
_, _, tasknames, _ = read_sbyconfig(sbydata, None)
|
||||
taskinfo = {}
|
||||
for taskname in tasknames or [None]:
|
||||
task_sbyconfig, _, _, _ = read_sbyconfig(sbydata, taskname)
|
||||
taskinfo[taskname or ""] = info = {}
|
||||
cfg = SbyConfig()
|
||||
cfg.parse_config(task_sbyconfig)
|
||||
taskinfo[taskname or ""] = {
|
||||
"mode": cfg.options.get("mode"),
|
||||
"engines": cfg.engines,
|
||||
}
|
||||
print(json.dumps(taskinfo, indent=2))
|
||||
sys.exit(0)
|
||||
|
||||
if len(tasknames) == 0:
|
||||
_, _, tasknames, _ = read_sbyconfig(sbydata, None)
|
||||
if len(tasknames) == 0:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue