File size: 1,111 Bytes
e4e3dcb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/bin/zsh

install_members() {
  # Read the Cargo.toml file and extract the members
  # The awk command extracts the lines between 'members = [' and ']'
  # The sed command removes the first and last lines (which are '[' and ']')
  # It also removes quotes, commas, and comments, and deletes empty lines
  members=$(awk '/members = \[/,/\]/' Cargo.toml | sed -e '1d;$d' -e 's/[",]//g' -e 's/#.*//g' -e '/^\s*$/d')

  # Convert the members string into an array
  members_array=(${(f)members})

  # Loop through each member and run the cargo install command
  for member in $members_array; do
    # Trim leading and trailing whitespace from each member
    member=$(echo $member | xargs)
    echo "Processing $member..."
    # Change to the member's directory
    # If the directory change fails, print an error message and exit the function
    cd $member || { echo "Failed to enter directory $member"; return 1; }
    # Run the cargo install command with the specified options
    cargo install -Z build-std --target x86_64-unknown-linux-gnu --path .
    # Return to the previous directory
    cd ..
  done
}