-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexport_img_assets.sh
More file actions
120 lines (109 loc) · 2.48 KB
/
export_img_assets.sh
File metadata and controls
120 lines (109 loc) · 2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/bin/sh
#获取当前目录
dir="$(pwd)";
imgset="imageset"
#usage
usage="usage:sh export_img_assets.sh -o 输出目录 -n 输出名称"
#参数模式
param_pattern=":n:o:h"
while getopts $param_pattern opt
do
case $opt in
o )
output_path=$OPTARG;;
n )
output_name=$OPTARG;;
h )
printf "${usage}"
exit 0;;
? ) echo "unkonw option $OPTIND"
exit 1;;
esac
done
if [[ $# -eq 0 ]]; then
printf "${usage}"
exit 1
fi
if [[ -z ${output_name} ]]; then
echo "请输入输出文件名"
exit 1
fi
if [[ -z ${output_path} ]]; then
echo "请输入输出目录"
exit 1
fi
output_h_file_Path=${output_path}"/"${output_name}".h"
output_m_file_Path=${output_path}"/"${output_name}".m"
> ${output_h_file_Path}
> ${output_m_file_Path}
echo ${output_h_file_Path}
echo ${output_m_file_Path}
#输出h文件头部
function outputHeader
{
echo "//
// ${output_name}.h
// Do not edit generate automatically
//
" >> ${output_h_file_Path}
echo "#import <Foundation/Foundation.h>" >> ${output_h_file_Path}
echo "@interface ${output_name} : NSObject" >> ${output_h_file_Path}
}
#输出h文件内容
function outputImageset
{
for subdir in `ls .`
do
if [ -d ${subdir} ]
then
dirExt=${subdir##*.}
if [ $dirExt = $imgset ]; then
echo "+ (NSString *)${subdir%.*};" >> ${output_h_file_Path}
# echo ${subdir}
# echo ${dirExt}
fi
cd ${subdir}
outputImageset
cd ..
fi
done
}
#输出h文件尾部
function outputEnd
{
echo "@end" >> ${output_h_file_Path}
}
#输出n文件尾部
function outputMFile
{
echo "//
// ${output_name}.h
// Do not edit generate automatically
//" >> ${output_m_file_Path}
echo "
#import \"${output_name}.h\"
#import <objc/runtime.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored \"-Wincomplete-implementation\"
NSString * dynamicMethodIMP(id self, SEL _cmd)
{
return NSStringFromSelector(_cmd);
}
@implementation ${output_name}
+ (BOOL)resolveClassMethod:(SEL)sel
{
Class selfMetaClass = objc_getMetaClass([NSStringFromClass([self class]) UTF8String]);
class_addMethod(selfMetaClass, sel, (IMP) dynamicMethodIMP, \"@@:\");
return YES;
}
+ (NSString *)dynamicMethodIMP
{
return NSStringFromSelector(_cmd);
}
@end
#pragma clang diagnostic pop" >> ${output_m_file_Path}
}
outputHeader
outputImageset
outputEnd
outputMFile