#!/bin/bash # Transform an @ file into a file list. # # The intended use case is given an @ path passed to swift, use this script and # bash to automagically expand the @ path by transforming: # # @/foo/bar/baz.txt # # => # # <(at-to-filelist /foo/bar/baz.txt) # # For those unaware, <(...) causes bash to output the subshell's output into a # file and then replace <(...) with the path to that temporary file. # # Example: # # Consider a swiftc command line that uses the @ symbol. # # swiftc @/foo/bar/baz.txt # # When this is run, the @ command is expanded into a filelist in a temporary # file. This doesn't work with -### since -### outputs the command line with a # temporary file for the filelist, but uses a path to a temporary file that # doesn't exist, e.g.: # # swift -frontend -filelist /tmp/tmp.filelist ... # # To run this command, you use the at-to-filelist command as follows: # # swift -frontend -filelist <(at-to-filelist /foo/bar/baz.txt) cat ${1} | tr -s ";" "\n" echo