• Feb 22, 2022 •LeifMessinger
0 likes • 2 views
#Leif Messinger #For when you want to search a lot of words in a file fast #Arg 1 is the argument the list of words you want to search #Arg 2 is the file you want to search #-z means that it looks at the file as a whole, just treating newlines a characters. #-r is regex. Needed for $, even tho the documentation says you don't need it. They are liars. #First command replaces all . with \. and all - with \- #Second command takes all newlines and replaces them with )|( #Third command takes the trailing |( and deletes it #Forth command puts a /( at the start #Fith command puts /!d at the end. This tells it to not delete any lines that match the pattern. #The second sed takes the output of the first sed as a command that searches any of the combined words #-f - takes a command from the input sed -z -r -e 's/\./\\\./g ; s/\-/\\\-/g' -e 's/\n/\)\|\(/g' -e 's/\|\($//' -e 'i/\(' -e 'a/!d' $1 | sed -r -f - $2
• Sep 29, 2021 •LeifMessinger
0 likes • 30 views
#!/bin/bash #cpcmd.sh [file1 [file2...]] #Prints out the commands needed to copy the file to your local machine #This will work on any server that also has the same hostname as in your hosts file. #I should update this to detect if a file is a directory, and enable recursion for those commands. If you do it now, it will probably just warn you. if [ -n "$1" ]; then for arg; do recursive=$(if [[ -d $arg ]]; then printf " -r"; fi) printf "scp$recursive \"$(whoami)@$(hostname):" printf `readlink -f $arg` printf "\" .\n" done else echo "scp \"$(whoami)@$(hostname):$PWD/*\" ." fi #-----------EDIT: #On the UNT cell machines, you have to do this script instead ##!/bin/bash #if [ -n "$1" ]; then # for arg; do # recursive=$(if [[ -d $arg ]]; then printf " -r"; fi) # printf "scp$recursive $(whoami)@$(hostname).eng.unt.edu:" # printf `readlink -f $arg` # printf " .\n" # done #else # echo "scp $(whoami)@$(hostname).eng.unt.edu:$PWD/* ." #fi
• Jan 12, 2023 •LeifMessinger
0 likes • 5 views
#!/bin/bash #Originally made by Isaac Cook https://gist.github.com/icook/5400173 #Modified by Leif Messinger #upload_key.sh [server_ip [server2_ip [...]]] #To be run locally on a linux computer if [ -e ~/.ssh/id_rsa.pub ]; then echo "SSH Key already exists on local machine" else echo "Generating SSH key on local machine" ssh-keygen -t rsa #generates id_rsa and id_rsa.pub chmod -R 700 ~/.ssh #Sets permissions of ssh folder ssh-add #Adds keys (and passwords?) to ssh_agent. (hopefully doesn't require password) fi echo "Loading client public key into memory" pubKey=$(<~/.ssh/id_rsa.pub) for server do echo "Adding client public key to $server remote server authorized keys" #Idiot Isaac Cook didn't know about ssh-copy-id #ssh-copy-id even checks if your key already exists #In fairness, I didn't either until researching ssh-add ssh-copy-id -i ~/.ssh/id_rsa.pub $server #In theory, this should prompt for a username #ssh $server "mkdir -p ~/.ssh; #Make the folder if not already made # echo \"$pubKey\" >> ~/.ssh/authorized_keys; #Append your public key to the server's authorized_keys # chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys" #Set the correct permissions of those files #echo "Adding server public key to local authorized keys" #ssh $server "ssh-copy-id -i ~/.ssh/id_rsa.pub \$SSH_CLIENT" #this might need some awk, as $SSH_CLIENT spits out clientip portnumber echo "Displaying server public key" ssh $server "cat ~/.ssh/id_rsa.pub" #Though, he did give me a good idea echo "Displaying keys authorized on $server (you can paste them in your authorized_keys file)" ssh $server "cat ~/.ssh/authorized_keys" #echo "Appending keys authorized on $server to your local authorized_keys" #ssh $server "cat ~/.ssh/authorized_keys" >> ~/.ssh/authorized_keys done echo "SSH keys schronized successfully!"
• Jul 8, 2024 •C S
0 likes • 23 views
#!/bin/bash # Set the directory to search DIRECTORY="src" # Set the output file OUTPUT_FILE="testids.txt" # Clear the output file > "$OUTPUT_FILE" # Find all .tsx files in the specified directory and its subdirectories find "$DIRECTORY" -type f -name "*.tsx" | while read -r FILE do # Search for instances of 'data-testid="testid"' and append them to the output file grep -o 'data-testid="[^"]*"' "$FILE" >> "$OUTPUT_FILE" # Search for instances of "'data-testid': 'testid'" and append them to the output file grep -o "'data-testid': '[^']*'" "$FILE" >> "$OUTPUT_FILE" done echo "Search complete. Test IDs written to $OUTPUT_FILE."
• Sep 9, 2023 •LeifMessinger
0 likes • 3 views
#!/bin/bash #Changes the remote url from https to ssh. #Only works for github, because I'd have to store a dictionary of every https to ssh url otherwise. #Made using Bing Chat # Get the remote URL from the console REPO_URL=$(git config --get remote.origin.url) # Check that REPO_URL contains https://github.com if [[ $REPO_URL == *"https://github.com"* ]]; then # Replace https with ssh in the URL REPO_URL=${REPO_URL/https:\/\/github.com\//[email protected]:} # Change the remote URL to the SSH version git remote set-url origin "$REPO_URL" else echo "Error: REPO_URL does not contain https://github.com" >&2 exit 1 fi
• Aug 16, 2023 •C S
0 likes • 8 views
# Run "test" script on all packages npm run test --workspaces # Tip - this also works: npm run test -ws ---------------------------------------------------- # Runs "test" only on package-a npm run test --workspace package-a # Tip - this also works: npm run test -w package-a ---------------------------------------------------- # Install `lodash` on `package-a` npm install lodash --workspace package-a # Install `tap` on `package-b` as a dev dependency npm install tap --workspace package-b --save-dev # Install `package-a` on `package-b` npm install package-a --workspace package-b # Install `eslint` in all packages npm install eslint --workspaces