Commit | Line | Data |
---|---|---|
fdf917e1 SBS |
1 | #!/bin/bash |
2 | ||
3 | # 2019-08-23T00:36Z; baltakatei> | |
4 | ||
5 | # This bash script should prompt the user for a URL, email address, | |
6 | # user name, text notes, and then generate a password, push this | |
7 | # password into the x clipboard, and then save a text file containing | |
8 | # the prompted details. This script should be run by Debian-based | |
9 | # GNU/Linux machines owned by baltakatei. | |
10 | ||
11 | # This file by Steven Baltakatei Sandoval is licensed under CC BY-SA 4.0. | |
12 | ||
13 | # Ask user for registration fields | |
14 | echo "What is the URL for whose website you are registering? (omit https://)" | |
15 | read input_URL | |
16 | echo "input_URL is:"$input_URL | |
17 | ||
18 | echo "What is your email address?" | |
19 | read input_EMAIL | |
20 | echo "input_EMAIL is:"$input_EMAIL | |
21 | ||
22 | echo "What is your user name (if any)?" | |
23 | read input_USERNAME | |
24 | echo "input_USERNAME is:"$input_USERNAME | |
25 | ||
26 | echo "Notes?" | |
27 | read input_NOTE | |
28 | echo "input_NOTE is:"$input_NOTE | |
29 | ||
30 | # Determine long date | |
31 | LONGDATE=$(date +%Y%m%dT%H%M%S.%N%z) | |
32 | echo "Current time is:"$LONGDATE | |
33 | ||
34 | # Determine hostname | |
35 | HOSTNAME=$(hostname) | |
36 | echo "HOSTNAME is:"$HOSTNAME | |
37 | ||
38 | # Perform superstitious PRNG spells | |
39 | echo $LONGDATE$HOSTNAME > /dev/random | |
40 | echo $(cat /proc/sys/kernel/random/entropy_avail)" bits of entropy in /dev/random" | |
41 | ||
42 | # Determine random 128-bit entropy password | |
43 | PASS1=$(LC_ALL=C tr -dc "[:graph:]" < /dev/urandom | head -c ${1:-8}) | |
44 | PASS2=$(LC_ALL=C tr -dc "[:graph:]" < /dev/urandom | head -c ${1:-8}) | |
45 | PASS3=$(LC_ALL=C tr -dc "[:graph:]" < /dev/urandom | head -c ${1:-4}) | |
46 | PASSPHRASE=$PASS1" "$PASS2" "$PASS3 | |
47 | echo "PASSPHRASE is:"$PASSPHRASE | |
48 | ||
49 | # Print fields to temporary file | |
50 | #echo "PASSPHRASE="$PASSPHRASE >> $PATHFILENAME | |
51 | #echo "URL="$input_URL >> $PATHFILENAME | |
52 | #echo "EMAIL="$input_EMAIL >> $PATHFILENAME | |
53 | #echo "USERNAME="$input_USERNAME >> $PATHFILENAME | |
54 | #echo "NOTE="$input_NOTE >> $PATHFILENAME | |
55 | #echo "DATE="$LONGDATE >> $PATHFILE | |
56 | ||
57 | # Push passphrase to clipboard | |
58 | echo -n $PASSPHRASE | xclip -selection clipboard | |
59 | ||
60 | echo "Passphrase copied to clipboard via xclip." | |
61 | ||
62 | # Push passphrase to `pass` | |
63 | #printf "$PASSPHRASE\nURL=$input_URL\nEMAIL=$input_EMAIL\nUSERNAME=$input_USERNAME\nNOTE=$input_NOTE\nDATE=$LONGDATE\n" | pass insert -m 01\ Online\ Services/$input_URL | |
64 | ||
65 | echo "$PASSPHRASE | |
66 | URL=$input_URL | |
67 | EMAIL=$input_EMAIL | |
68 | USERNAME=$input_USERNAME | |
69 | NOTE=$input_NOTE | |
70 | DATE=$LONGDATE | |
71 | " | pass insert -m 01\ Online\ Services/$input_URL |