-
-
Save alanmatiasdev/c50894ccc080e4842e17b8e826c1b889 to your computer and use it in GitHub Desktop.
Revisions
-
yebt revised this gist
May 19, 2022 . 2 changed files with 5 additions and 9 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -18,9 +18,7 @@ print(f"Error!! -- The file '{filename}' dont exist" ) exit() # get the data json_load = json.load(json_file) # interactive vars @@ -66,9 +64,9 @@ def manage_indirect_deps( ind_deps_list :list) -> None: str_req_dev = '"require-dev": {' for dep in direct_dependences_dict: if direct_dependences_dict[dep][1]: str_req_dev += '\n \"'+dep + '\": \"^' + direct_dependences_dict[dep][0] + '\"' else: str_req += '\n \"'+dep + '\": \"^' + direct_dependences_dict[dep][0] + '\"' str_req += '\n},' str_req_dev += '\n}' This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -68,11 +68,9 @@ def manage_indirect_deps( ind_deps_list :list) -> None: for dep in direct_dependences_dict: if direct_dependences_dict[dep][1]: req_dev_json_dic[dep] = "^" + direct_dependences_dict[dep][0] else: req_json_dic[dep] = "^" + direct_dependences_dict[dep][0] # get all deps compser_json_dic = {"require": req_json_dic, "require-dev":req_dev_json_dic} -
yebt revised this gist
May 19, 2022 . 1 changed file with 91 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,91 @@ #!/bin/python # -*- coding: utf-8 -*- import json import sys from pygments import highlight from pygments.formatters.terminal256 import Terminal256Formatter from pygments.lexers.web import JsonLexer # Constant vars if len(sys.argv) != 2: print('Error!! -- No file specified ') print('\t get_composer_deps.py <path/to/vendor/composer/installed.json>') exit() filename ='' try: filename = sys.argv[1] json_file= open(filename, 'r') except Exception as e: print(f"Error!! -- The file '{filename}' dont exist" ) exit() # get the data json_load = json.load(json_file) # interactive vars direct_dependences_dict = {} indirect_dependences_list = [] # This manage the indirect dependences and # delete or add this from dictionary or list def manage_indirect_deps( ind_deps_list :list) -> None: # traverse list of indirect dependences for inddep in ind_deps_list: if not(inddep in indirect_dependences_list): # delete 'direct' dependence calls from 'indirect' dependences if inddep in direct_dependences_dict: del direct_dependences_dict[inddep] # add 'indirect' dependence to list indirect_dependences_list.append(inddep) # traverse the data list for obj in json_load: # get the dep data dep_name = obj['name'] dep_version = obj['version_normalized'] dep_dev = (lambda x: ((lambda y: y.get('dev-master') if y else None ) (x.get('branch-alias'))) if x else None ) ( obj.get('extra') ) # verify direct dependeces if not (dep_name in indirect_dependences_list): direct_dependences_dict[dep_name] = (dep_version, dep_dev) # get indeirect dependecnes ind_deps_reqs = obj.get('require') ind_deps_reqs_dev = obj.get('require-dev') # manage indirect dependences manage_indirect_deps(ind_deps_reqs if ind_deps_reqs else [] ) manage_indirect_deps(ind_deps_reqs_dev if ind_deps_reqs_dev else []) # traverse the obtained direct dependencies req_json_dic = {} req_dev_json_dic = {} for dep in direct_dependences_dict: if direct_dependences_dict[dep][1]: req_dev_json_dic[dep] = direct_dependences_dict[dep][0] # str_req_dev += '\n \"'+dep + '\": \"' + direct_dependences_dict[dep][0] + '\"' else: req_json_dic[dep] = direct_dependences_dict[dep][0] # str_req += '\n \"'+dep + '\": \"' + direct_dependences_dict[dep][0] + '\"' # get all deps compser_json_dic = {"require": req_json_dic, "require-dev":req_dev_json_dic} # Generate JSON raw_json = json.dumps(compser_json_dic, indent=4) # Colorize it colorful = highlight( raw_json, lexer=JsonLexer(), formatter=Terminal256Formatter(), ) # Print to console print(colorful) -
yebt created this gist
May 19, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,77 @@ #!/bin/python # -*- coding: utf-8 -*- import json import sys # Constant vars if len(sys.argv) != 2: print('Error!! -- No file specified ') print('\t get_composer_deps.py <path/to/vendor/composer/installed.json>') exit() filename ='' try: filename = sys.argv[1] json_file= open(filename, 'r') except Exception as e: print(f"Error!! -- The file '{filename}' dont exist" ) exit() # load the json file #with open(filename, 'r') as json_file: json_load = json.load(json_file) # interactive vars direct_dependences_dict = {} indirect_dependences_list = [] # This manage the indirect dependences and # delete or add this from dictionary or list def manage_indirect_deps( ind_deps_list :list) -> None: # traverse list of indirect dependences for inddep in ind_deps_list: if not(inddep in indirect_dependences_list): # delete 'direct' dependence calls from 'indirect' dependences if inddep in direct_dependences_dict: del direct_dependences_dict[inddep] # add 'indirect' dependence to list indirect_dependences_list.append(inddep) # traverse the data list for obj in json_load: # get the dep data dep_name = obj['name'] dep_version = obj['version_normalized'] dep_dev = (lambda x: ((lambda y: y.get('dev-master') if y else None ) (x.get('branch-alias'))) if x else None ) ( obj.get('extra') ) # verify direct dependeces if not (dep_name in indirect_dependences_list): direct_dependences_dict[dep_name] = (dep_version, dep_dev) # get indeirect dependecnes ind_deps_reqs = obj.get('require') ind_deps_reqs_dev = obj.get('require-dev') # manage indirect dependences manage_indirect_deps(ind_deps_reqs if ind_deps_reqs else [] ) manage_indirect_deps(ind_deps_reqs_dev if ind_deps_reqs_dev else []) # traverse the obtained direct dependencies str_req = '"require": {' str_req_dev = '"require-dev": {' for dep in direct_dependences_dict: if direct_dependences_dict[dep][1]: str_req_dev += '\n \"'+dep + '\": \"' + direct_dependences_dict[dep][0] + '\"' else: str_req += '\n \"'+dep + '\": \"' + direct_dependences_dict[dep][0] + '\"' str_req += '\n},' str_req_dev += '\n}' print(str_req) print(str_req_dev)