51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/usr/bin/env bash
 | |
| set -e
 | |
| 
 | |
| echo Installing aikup...
 | |
| 
 | |
| AIKEN_DIR=${AIKEN_DIR-"$HOME/.aiken"}
 | |
| AIKEN_BIN_DIR="$AIKEN_DIR/bin"
 | |
| 
 | |
| BIN_URL="https://raw.githubusercontent.com/aiken-lang/aiken/main/aikup/aikup"
 | |
| BIN_PATH="$AIKEN_BIN_DIR/aikup"
 | |
| 
 | |
| # Create the .aiken bin directory and aikup binary if it doesn't exist.
 | |
| mkdir -p $AIKEN_BIN_DIR
 | |
| curl -# -L $BIN_URL -o $BIN_PATH
 | |
| chmod +x $BIN_PATH
 | |
| 
 | |
| # Store the correct profile file (i.e. .profile for bash or .zshrc for ZSH).
 | |
| case $SHELL in
 | |
| */zsh)
 | |
|     PROFILE=$HOME/.zshrc
 | |
|     PREF_SHELL=zsh
 | |
|     INJECT="export PATH=\"\$PATH:$AIKEN_BIN_DIR\""
 | |
|     ;;
 | |
| */bash)
 | |
|     PROFILE=$HOME/.bashrc
 | |
|     PREF_SHELL=bash
 | |
|     INJECT="export PATH=\"\$PATH:$AIKEN_BIN_DIR\""
 | |
|     ;;
 | |
| */fish)
 | |
|     PROFILE=$HOME/.config/fish/config.fish
 | |
|     PREF_SHELL=fish
 | |
|     INJECT="fish_add_path $AIKEN_BIN_DIR"
 | |
|     ;;
 | |
| */ash)
 | |
|     PROFILE=$HOME/.profile
 | |
|     PREF_SHELL=ash
 | |
|     INJECT="export PATH=\"\$PATH:$AIKEN_BIN_DIR\""
 | |
|     ;;
 | |
| *)
 | |
|     echo "aikup: could not detect shell, manually add ${AIKEN_BIN_DIR} to your PATH."
 | |
|     exit 1
 | |
| esac
 | |
| 
 | |
| # Only add aikup if it isn't already in PATH.
 | |
| if [[ ":$PATH:" != *":${AIKEN_BIN_DIR}:"* ]]; then
 | |
|     # Add the aikup directory to the path and ensure the old PATH variables remain.
 | |
|     echo >> $PROFILE && echo "$INJECT" >> $PROFILE
 | |
| fi
 | |
| 
 | |
| echo && echo "Detected your preferred shell is ${PREF_SHELL} and added aikup to PATH. Run 'source ${PROFILE}' or start a new terminal session to use aikup."
 | |
| echo "Then, simply run 'aikup' to install Aiken." |