mirror of
https://github.com/harish2704/dotFiles.git
synced 2026-09-10 07:11:09 +00:00
More daily utility functions
This commit is contained in:
@@ -471,11 +471,70 @@ Host *
|
|||||||
ServerAliveInterval 40
|
ServerAliveInterval 40
|
||||||
EEE
|
EEE
|
||||||
|
|
||||||
while :; do ssh -R 4025:127.0.0.1:22 myguest@${1:-myserver}; sleep 10; done;
|
while :; do ssh -NT -R 4025:127.0.0.1:22 myguest@${1:-myserver}; sleep 10; done;
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Usage: mysqlCreateDbUser <username> [password] [database]
|
||||||
|
mysqlCreateDbUser() {
|
||||||
|
if [ $# -ne 1 ]; then
|
||||||
|
echo "Usage: ${FUNCNAME[0]} <username> [password] [database]" >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local randPass=$(openssl rand -base64 18)
|
||||||
|
local username="$1"
|
||||||
|
local defDbName="${username}_db"
|
||||||
|
local user_password="${2:-$randPass}"
|
||||||
|
local db_name="${3:-$defDbName}"
|
||||||
|
|
||||||
|
# Validate username
|
||||||
|
if [[ -z "$username" || "$username" =~ [^a-zA-Z0-9_-] ]]; then
|
||||||
|
echo "Error: Invalid username. Only alphanumeric, hyphen, and underscore allowed." >&2
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "-- Using password '$user_password' for user '$username' and creating database '$db_name' \n"
|
||||||
|
|
||||||
|
# Execute MySQL commands
|
||||||
|
cat<<EOF
|
||||||
|
CREATE DATABASE IF NOT EXISTS \`$db_name\`;
|
||||||
|
CREATE USER '$username'@'%' IDENTIFIED BY '$user_password';
|
||||||
|
GRANT ALL PRIVILEGES ON \`$db_name\`.* TO '$username'@'%';
|
||||||
|
FLUSH PRIVILEGES;
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create duckdb from csv. Usage csv2duckdb <csv-file>
|
||||||
|
csv2duckdb(){
|
||||||
|
csv=$1;
|
||||||
|
tbl="$(basename $csv)"
|
||||||
|
tbl=${tbl%.*};
|
||||||
|
tbl="$(echo $tbl | sed 's/[^[:alnum:]]/_/g' )";
|
||||||
|
echo "CREATE TABLE $tbl AS SELECT * FROM '$csv';" | duckdb "$tbl.duckdb" ;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create sqlite3 db from csv. Usage csv2sqlite <csv-file>
|
||||||
|
csv2sqlite(){
|
||||||
|
csv=$1;
|
||||||
|
tbl="$(basename $csv)"
|
||||||
|
tbl=${tbl%.*};
|
||||||
|
tbl="$(echo $tbl | sed 's/[^[:alnum:]]/_/g' )";
|
||||||
|
echo "ATTACH '$tbl.db' AS sqdb (TYPE sqlite); CREATE TABLE sqdb.$tbl AS SELECT * FROM '$csv';" | duckdb ;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Expose port of container using pasta. pastaExpose <container> <portmapping>
|
||||||
|
pastaExpose(){
|
||||||
|
cont=$1;
|
||||||
|
portMapping=$2;
|
||||||
|
contPid=$(podman inspect -f '{{.State.Pid}}' $cont);
|
||||||
|
pasta -f --config-net -t $portMapping -u none -T none -U none --no-map-gw $contPid;
|
||||||
|
# pasta -f --config-net -t $portMapping --dns-forward 169.254.1.1 -u none -T none -U none --no-map-gw --map-guest-addr 169.254.1.2 $contPid;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### END OF USER FUNCTIONS ####
|
||||||
# Setup autocomplete. run eval "$(THIS_FILE setup-autocomplete)"
|
# Setup autocomplete. run eval "$(THIS_FILE setup-autocomplete)"
|
||||||
setup-autocomplete(){
|
setup-autocomplete(){
|
||||||
cat<<EOF
|
cat<<EOF
|
||||||
|
|||||||
Reference in New Issue
Block a user