Skip to content

Instantly share code, notes, and snippets.

@qiugang
Created January 10, 2019 12:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save qiugang/7bbe0163b1476b438b0830dcbd4738f2 to your computer and use it in GitHub Desktop.
Save qiugang/7bbe0163b1476b438b0830dcbd4738f2 to your computer and use it in GitHub Desktop.
andres_detect.py
# -*- coding: utf-8 -*-
import os
import re
import sys, getopt
pattern = re.compile('R.layout.*\\b')
res_result = []
def start_task(pin_name):
dir = os.path.join(os.getcwd(), 'src/', pin_name)
print("process...")
find_res(dir)
print(res_result)
move_task(pin_name)
def find_res(dir):
files = os.listdir(dir)
for f in files:
fc = os.path.join(dir, f)
if os.path.isdir(fc):
find_res(fc)
else:
if fc.endswith(".java"):
sub_res = match_layout(os.path.join(dir, fc))
for xml_str in sub_res:
res_result.append(xml_str)
else:
pass
def match_layout(file_path):
res = []
target = open(file_path)
for s in target.readlines():
if "R.layout" in s:
include_line = pattern.findall(s)[0]
if "," in include_line:
include_line = include_line.split(',')[0]
if "." in include_line:
include_line = include_line.split('.')[2]
res.append(include_line + ".xml")
else:
pass
return res
def move_task(pin_name):
if len(res_result) == 0:
print("detect no layout res...")
return
print("target pin name: {name}".format(name = pin_name))
print("start moving...")
origin_res_dir = os.path.join(os.getcwd(), 'src/main/res/layout/')
target_res_dir = os.path.join(os.getcwd(),'src/', pin_name, 'main/res/layout')
if os.path.exists(target_res_dir) == False:
os.makedirs(target_res_dir)
for layout_xml_name in res_result:
try:
os.rename(os.path.join(origin_res_dir, layout_xml_name),
os.path.join(target_res_dir, layout_xml_name))
except:
print("{xml_name} not exist".format(xml_name = layout_xml_name))
def main(argv):
dir = ''
try:
opts, args = getopt.getopt(argv, "p:", ["pin_name"])
except getopt.GetoptError:
print 'detect_layout_res.py -p <pin_name>'
sys.exit(2)
for opt, arg in opts:
if opt == '--h':
print 'detect_layout_res.py -p <pin_name>'
sys.exit()
elif opt in ("-p", "--pin_name"):
dir = arg
if dir == '':
print 'detect_layout_res.py -p <pin_name>'
else:
print(dir)
start_task(dir)
if __name__ == "__main__":
main(sys.argv[1:])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment