Fix qmk flash on FreeBSD (#12085)
When the USB device is connected, FreeBSD creates not one, but three
device nodes in /dev, e.g.: /dev/ttyU0, /dev/ttyU0.init, and
/dev/ttyU0.lock.
As a result, this leads to the USB variable containing 3 paths
(and therefore, whitespace) and messages like this one:
    Device /dev/ttyU0
    /dev/ttyU0.init
    /dev/ttyU0.lock has appeared; assuming it is the controller.
This changes fixes the use of the -z flag of "[" (see test(1)). Also, it
removes undesired paths from the USB variable, leaving only
one path there (i.e., "/dev/ttyU0").
			
			
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							c6778dde82
						
					
				
				
					commit
					38b9f67c3b
				
			@@ -160,6 +160,8 @@ define EXEC_AVRDUDE
 | 
				
			|||||||
	list_devices() { \
 | 
						list_devices() { \
 | 
				
			||||||
		if $(GREP) -q -s icrosoft /proc/version; then \
 | 
							if $(GREP) -q -s icrosoft /proc/version; then \
 | 
				
			||||||
		    wmic.exe path Win32_SerialPort get DeviceID 2>/dev/null | LANG=C perl -pne 's/COM(\d+)/COM.($$1-1)/e' | sed 's!COM!/dev/ttyS!' | xargs echo -n | sort; \
 | 
							    wmic.exe path Win32_SerialPort get DeviceID 2>/dev/null | LANG=C perl -pne 's/COM(\d+)/COM.($$1-1)/e' | sed 's!COM!/dev/ttyS!' | xargs echo -n | sort; \
 | 
				
			||||||
 | 
							elif [ "`uname`" = "FreeBSD" ]; then \
 | 
				
			||||||
 | 
								ls /dev/tty* | grep -v '\.lock$$' | grep -v '\.init$$'; \
 | 
				
			||||||
		else \
 | 
							else \
 | 
				
			||||||
			ls /dev/tty*; \
 | 
								ls /dev/tty*; \
 | 
				
			||||||
		fi; \
 | 
							fi; \
 | 
				
			||||||
@@ -169,7 +171,7 @@ define EXEC_AVRDUDE
 | 
				
			|||||||
	TMP1=`mktemp`; \
 | 
						TMP1=`mktemp`; \
 | 
				
			||||||
	TMP2=`mktemp`; \
 | 
						TMP2=`mktemp`; \
 | 
				
			||||||
	list_devices > $$TMP1; \
 | 
						list_devices > $$TMP1; \
 | 
				
			||||||
	while [ -z $$USB ]; do \
 | 
						while [ -z "$$USB" ]; do \
 | 
				
			||||||
		sleep 0.5; \
 | 
							sleep 0.5; \
 | 
				
			||||||
		printf "."; \
 | 
							printf "."; \
 | 
				
			||||||
		list_devices > $$TMP2; \
 | 
							list_devices > $$TMP2; \
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user