#!/bin/bash set_vars() { atamate_acp_download_host=https://staging.deploy.atamate.com username=atamate user_home_dir=/home/$username atamate_acp_loc=/usr/share/acp atamate_acp_version_dir=/var/lib/atamate/acp atamate_acp_version_loc=$atamate_acp_version_dir/acp.version atamate_acp_PATH_loc=/usr/local/bin/acp atamate_acp_completion_loc=/usr/share/acp_completion.sh atamate_cli_loc=/usr/share/atamate-cli atamate_cli_PATH_loc=/usr/local/bin/atamate-cli atamate_log_dir=/var/log/atamate atamate_cli_log_file=$atamate_log_dir/cli.log atamate_log_file=$atamate_log_dir/acp.log atamate_quinn_key="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDAWD8EAtx9MTYEuW69jvwg+0NvXEL0u4bUm6AS6+/ACnRz60gpBQa7DZu0oel1jifOb8KNnv6elGPTbt4dutIRx1Wu+yKZqwgPBmRFpui3jqPaED443pPVP6jzRb+KgylzPOCeN/LQJ2vGY+P0zCp8Q5yuIMAtfqYME4N9e+nwpAnc56w6ywrfMTcgvh9Ujc5kcuoHbx4WmAqDJONM8Vcaa6EWf8gQUIJAU2ZQ7MVhk92yXzJU64+wioWJ8MuQKXbWztUgjcBnYH2tPV3mshVTRL/o5BBPhUKEc9UEZ0+JJNUM+zpp0NBMg0IcpLUGl6GOWBW6sy7SheW+3j1UCa5wt1rHnFOa86326FLvwfHNIbVnV2NHjuWP5g9FGnIybUVtpx6e34SPiyoS4C1IMlSarIcvYgsThzjsQZ4VWJ9hUE0vdyeMLYey2C+yOSrDV51OB+ZCPMizpA2rJbY43i4+DHhosHfKcD9q4n7b03s+RJ9HsA4KH69uUjNGV/bnPQ8= ubuntu@quinn.atamate.com" architecture="$(uname -m)" } verify_system_architecture() { if [ "$architecture" != "x86_64" ] && [ "$architecture" != "aarch64" ]; then echo "System Architecture not supported. Aborting..." exit fi } configure_sudo() { sudouser=$1 if id $sudouser &>/dev/null; then local no_password_line="$sudouser ALL=(ALL) NOPASSWD: ALL" if ! sudo grep -q "$no_password_line" /etc/sudoers; then echo "$no_password_line" | sudo tee -a /etc/sudoers >/dev/null fi fi } configure_user() { if id $username &>/dev/null; then echo "user $username found" else sudo useradd -m $username >/dev/null local bash_path=$(which bash) sudo usermod -aG sudo -s $bash_path $username fi configure_sudo $username build_ssh_dir } build_ssh_dir() { local ssh_dir=$user_home_dir/.ssh sudo mkdir -p $ssh_dir sudo chown $username:$username $ssh_dir sudo touch $ssh_dir/authorized_keys sudo chmod 700 $ssh_dir add_quinn_to_authorised_keys } run_program_upon_launching_bash_shell() { if ! sudo grep -q "acp" $user_home_dir/.bashrc; then echo "acp" | sudo tee -a $user_home_dir/.bashrc >/dev/null fi } build_atamate_dirs() { sudo mkdir -p /etc/atamate/{air/inactive/,deb} "$atamate_log_dir" } create_log_file() { sudo touch "$atamate_log_file" } download_acp() { local query_params=/api/cli/$architecture local url=$atamate_acp_download_host$query_params local version_url=$atamate_acp_download_host$query_params-version tmpfile=$(mktemp /tmp/acp-update.XXXXXX) version_tmpfile=$(mktemp /tmp/acp-version.XXXXXX) echo "Downloading ACP from $url" wget -qO "$tmpfile" "$url" echo "Downloading ACP version file from $version_url" wget -qO "$version_tmpfile" "$version_url" sudo mv -f "$tmpfile" "$atamate_acp_loc" sudo mkdir -p "$atamate_acp_version_dir" sudo mv -f "$version_tmpfile" "$atamate_acp_version_loc" } add_acp_to_path() { sudo tee $atamate_acp_PATH_loc > /dev/null </dev/null < /dev/null </dev/null fi if [ ! -s ~/.ssh/authorized_keys ]; then echo "$atamate_quinn_key" | sudo tee -a ~/.ssh/authorized_keys >/dev/null fi } add_redis_user(){ if ! id redis &>/dev/null; then sudo useradd redis fi } #########COMMANDS START HERE######### set_vars cleanup_cli verify_system_architecture add_redis_user configure_user configure_sudo ubuntu build_atamate_dirs create_log_file download_acp add_acp_to_path add_acp_completion run_program_upon_launching_bash_shell set_perms