-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrepatch
executable file
·18 lines (17 loc) · 977 Bytes
/
repatch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
PARTS=$(sed -ne 's,^module *\(.*\) *() */\*\[\(.*\)\]\*/.*,[\2]\1,p' soLDraw.scad | tr -d '\n')
PARTS1=$(echo $PARTS | sed -e 's/\[\([^]]*\)\].*/"\1"/')
PARTS2=$(echo $PARTS | sed -e 's/\[\([^]]*\)\]\([^[]*\)/"\1", /g;s/, $//')
PARTS3=$(echo $PARTS | sed -e 's/\[\([^]]*\)\]\([^[]*\)/ if(part=="\1") \2(); else \/\/\[AUTODEL\]\\n/g;s/\\n$//')
PARTS4=$(echo $PARTS | sed -e 's/\[\([^]]*\)\]\([^[]*\)/ if(part=="\1") ldraw_lib__\1(); else \/\/\[AUTODEL\]\\n/g;s/\\n$//')
PARTS5=$(echo $PARTS | sed -e 's/\[\([^]]*\)\]\([^[]*\)/use <LDraw\/parts\/\1.scad> \/\/\[AUTODEL\]\\n/g;s/\\n$//')
PARTS6=$(echo $PARTS | sed -e 's/\[\([^]]*\)\]\([^[]*\)/\1 /g;s/ $//')
sed -i -e '
s|^part *= *".*|'"part = $PARTS1; // [$PARTS2]"'|
/\/\[AUTODEL\]/d
s|\(\[AUTOGEN MODULE\].*\)$|\1\n'"$PARTS3"'|
s|\(\[AUTOGEN TEST\].*\)$|\1\n'"$PARTS4"'|
s|\(\[AUTOGEN TESTINC\].*\)$|\1\n'"$PARTS5"'|
' soLDraw.scad test.scad
sed -i -e '
s|^PARTS *:=.*|'"PARTS := $PARTS6|" Makefile