toolkit / zsh /install_members.zsh
k4d3's picture
install_members
e4e3dcb
raw
history blame
1.11 kB
#!/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
}