#!/bin/bash # Prompt to select an option echo -e "Please select the action you want to perform.\nAllowed options are:\n[import|export]\n" read -a option ## EXPORTING if [[ "$option" == "export" ]] then # Locate the password store if [ -z $PASSWORD_STORE_DIR ] then cd ~/.password-store else cd $(echo $PASSWORD_STORE_DIR) fi # File to save the exported contents to touch ~/.exported-passwords.txt echo -e "Your passwords will be saved to ~/.exported-passwords.txt\nPlease wait..\n" # Export logic for psw in $(find . -type f -name "*.gpg" | awk -F. '{print $2}' | tr '\n' ' ' ; echo); do echo -e "$psw $(pass $psw)" >> ~/.exported-passwords.txt done echo -e "Your passwords have been exported!\nYou can now restart the script with the import function to restore them into your new device.\n" ## IMPORTING elif [[ "$option" == "import" ]] then # Get the location of the file to import echo -e "Provide the full path of the file you wish to import:\n" read -a psw_import # Generate 2 separate files, one for names and one for passwords echo -e "Importing passwords.\nPlease wait..\n" # Importing logic while IFS= read -r line; do name=$(printf '%s\n' "$line" | awk '{print $1}') new_psw=$(printf '%s\n' "$line" | awk '{print $2}') printf "%s\n%s\n" "$new_psw" "$new_psw" | pass insert $name done < "$psw_import" echo -e "Your passwords have been imported!\nThis script will now exit.\n" ## INVALID, EXIT else echo -e "Unknown action specified!!\nExiting..\n" fi