Template files created

- Gitignore and Prettierrc
- Created 2 env variables pointing to them

Shellcheck & Shellharden suggestions Implemented

NeoVim
- Replaced tpope/vim-surround with kylechui/nvim-surround
- LuaSnip typo fix
- [Ctrl+p] to open file fzf
- Formatting
This commit is contained in:
Pratik Tripathy
2024-03-06 16:01:37 +05:30
parent b0efae3730
commit 445ba576ca
14 changed files with 130 additions and 108 deletions

1
.prettierrc Symbolic link
View File

@@ -0,0 +1 @@
common/.config/templates/.prettierrc

View File

@@ -19,16 +19,20 @@ return {
"rafamadriz/friendly-snippets", "rafamadriz/friendly-snippets",
}, },
config = function() config = function()
-- [[ Configure nvim-cmp ]]
-- See `:help cmp` -- See `:help cmp`
-- vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
local cmp = require("cmp") local cmp = require("cmp")
local defaults = require("cmp.config.default")() local defaults = require("cmp.config.default")()
local luasnip = require("luasnip") local luasnip = require("luasnip")
require("luasnip.loaders.from_vscode").lazy_load() require("luasnip.loaders.from_vscode").lazy_load()
luasnip.config.setup({}) luasnip.config.setup({})
-- vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
cmp.setup({ cmp.setup({
-- experimental = {
-- ghost_text = {
-- hl_group = "CmpGhostText",
-- },
-- },
snippet = { snippet = {
expand = function(args) expand = function(args)
luasnip.lsp_expand(args.body) luasnip.lsp_expand(args.body)
@@ -62,18 +66,13 @@ return {
{ name = "path" }, { name = "path" },
{ { name = "buffer" } }, { { name = "buffer" } },
}, },
-- experimental = {
-- ghost_text = {
-- hl_group = "CmpGhostText",
-- },
-- },
sorting = defaults.sorting, sorting = defaults.sorting,
}) })
end, end,
}, },
{ {
"L4MON4D3/LuaSnip", "L3MON4D3/LuaSnip",
keys = { keys = {
{ {
"<tab>", "<tab>",

View File

@@ -1,9 +1,18 @@
return { return {
{ "tpope/vim-repeat" }, { "tpope/vim-repeat" },
{ "tpope/vim-surround" },
{ "easymotion/vim-easymotion" }, { "easymotion/vim-easymotion" },
{ "machakann/vim-highlightedyank" }, { "machakann/vim-highlightedyank" },
-- Better surround than tpope/vim-surround
{
"kylechui/nvim-surround",
version = "*",
event = "VeryLazy",
config = function()
require("nvim-surround").setup({})
end,
},
-- "gc" to comment visual regions/lines -- "gc" to comment visual regions/lines
{ {
"numToStr/Comment.nvim", "numToStr/Comment.nvim",

View File

@@ -216,6 +216,13 @@ return {
end, end,
desc = "Dismiss all Notifications", desc = "Dismiss all Notifications",
}, },
{
"<leader>xx",
function()
require("notify").dismiss({ silent = true, pending = true })
end,
desc = "Dismiss all Notifications",
},
}, },
opts = { opts = {
render = "wrapped-compact", -- Smaller popups render = "wrapped-compact", -- Smaller popups

View File

@@ -54,8 +54,7 @@ return {
pcall(require("telescope").load_extension, "fzf") pcall(require("telescope").load_extension, "fzf")
-- Special Things: [T]elescope -- Special Things: [T]elescope
vim.keymap.set("n", "<leader>nc", require("telescope.builtin").colorscheme, vim.keymap.set("n", "<leader>nc", require("telescope.builtin").colorscheme, { desc = "List [N]eovim [C]olorschemes (with preview)" })
{ desc = "List [N]eovim [C]olorschemes (with preview)" })
-- Grep things -> [S]earch -- Grep things -> [S]earch
vim.keymap.set("n", "<leader>sb", function() vim.keymap.set("n", "<leader>sb", function()
@@ -63,46 +62,35 @@ return {
grep_open_files = true, grep_open_files = true,
prompt_title = "Live Grep in Open Files", prompt_title = "Live Grep in Open Files",
}) })
end, { desc = "[S]earch Open [B]uffers" }) end, { desc = "[S]earch Open [B]buffers" })
vim.keymap.set("n", "<leader>sg", require("telescope.builtin").live_grep, vim.keymap.set("n", "<leader>sg", require("telescope.builtin").live_grep, { desc = "[S]earch/Live[G]rep the Project" })
{ desc = "[S]earch/Live[G]rep the Project" }) vim.keymap.set("n", "<leader>sw", require("telescope.builtin").grep_string, { desc = "[S]earch current [W]ord in Project" })
vim.keymap.set("n", "<leader>sw", require("telescope.builtin").grep_string,
{ desc = "[S]earch current [W]ord in Project" })
-- [L]ist -- [L]ist
vim.keymap.set("n", "<leader>lb", require("telescope.builtin").buffers, { desc = "[L]ist [B]uffers" }) vim.keymap.set("n", "<leader>lb", require("telescope.builtin").buffers, { desc = "[L]ist [B]buffers" })
vim.keymap.set("n", "<leader>lc", require("telescope.builtin").command_history, vim.keymap.set("n", "<leader>lc", require("telescope.builtin").command_history, { desc = "[L]ist NeoVIM [C]ommand History" })
{ desc = "[L]ist NeoVIM [C]ommand History" }) vim.keymap.set("n", "<C-p>", require("telescope.builtin").find_files, { desc = "[L]ist & Search [F]iles" })
vim.keymap.set("n", "<leader>lf", require("telescope.builtin").find_files, vim.keymap.set("n", "<leader>lf", require("telescope.builtin").find_files, { desc = "[L]ist & Search [F]iles" })
{ desc = "[L]ist & Search [F]iles" }) vim.keymap.set("n", "<leader>lh", require("telescope.builtin").help_tags, { desc = "[L]ist & Search NeoVIM [H]elp" })
vim.keymap.set("n", "<leader>lh", require("telescope.builtin").help_tags, vim.keymap.set("n", "<leader>lk", require("telescope.builtin").keymaps, { desc = "[L]ist & Search NeoVIM [K]eymaps" })
{ desc = "[L]ist & Search NeoVIM [H]elp" }) vim.keymap.set("n", "<leader>lm", require("telescope.builtin").man_pages, { desc = "[L]ist & Search System Ma[n] Pages" })
vim.keymap.set("n", "<leader>lk", require("telescope.builtin").keymaps, vim.keymap.set("n", "<leader>lq", require("telescope.builtin").quickfixhistory, { desc = "[L]ist [Q]uickfix History" })
{ desc = "[L]ist & Search NeoVIM [K]eymaps" }) vim.keymap.set("n", "<leader>ls", require("telescope.builtin").search_history, { desc = "[L]ist [S]earch History" })
vim.keymap.set("n", "<leader>lm", require("telescope.builtin").man_pages,
{ desc = "[L]ist & Search System Ma[n] Pages" })
vim.keymap.set("n", "<leader>lq", require("telescope.builtin").quickfixhistory,
{ desc = "[L]ist [Q]uickfix History" })
vim.keymap.set("n", "<leader>ls", require("telescope.builtin").search_history,
{ desc = "[L]ist [S]earch History" })
vim.keymap.set("n", "<leader>lv", require("telescope.builtin").vim_options, { desc = "[L]ist [V]im Options" }) vim.keymap.set("n", "<leader>lv", require("telescope.builtin").vim_options, { desc = "[L]ist [V]im Options" })
-- Git things -> [G]it -- Git things -> [G]it
vim.keymap.set("n", "<leader>gb", require("telescope.builtin").git_branches, vim.keymap.set("n", "<leader>gb", require("telescope.builtin").git_branches, { desc = "List [G]it [B]ranches" })
{ desc = "List [G]it [B]ranches" }) vim.keymap.set("n", "<leader>gc", require("telescope.builtin").git_commits, { desc = "List [G]it [C]omits" })
vim.keymap.set("n", "<leader>gc", require("telescope.builtin").git_commits, { desc = "List [G]it [C]ommits" })
-- LSP Things -> [C]oding -- LSP Things -> [C]oding
vim.keymap.set("n", "<leader>cd", require("telescope.builtin").diagnostics, vim.keymap.set("n", "<leader>cd", require("telescope.builtin").diagnostics, { desc = "[C]ode: List [D]iagnostics" })
{ desc = "[C]ode: List [D]iagnostics" })
vim.keymap.set( vim.keymap.set(
"n", "n",
"<leader>ci", "<leader>ci",
require("telescope.builtin").lsp_implementations, require("telescope.builtin").lsp_implementations,
{ desc = "[C]ode: Goto [I]mplementation of the word under cursor" } { desc = "[C]ode: Goto [I]mplementation of the word under cursor" }
) )
vim.keymap.set("n", "<leader>cR", require("telescope.builtin").lsp_references, vim.keymap.set("n", "<leader>cR", require("telescope.builtin").lsp_references, { desc = "[C]ode: List [R]eferences for word under cursor" })
{ desc = "[C]ode: List [R]eferences for word under cursor" })
vim.keymap.set( vim.keymap.set(
"n", "n",
"<leader>cgt", "<leader>cgt",
@@ -110,14 +98,10 @@ return {
{ desc = "[C]ode: Goto definition of the [T]ype under cursor" } { desc = "[C]ode: Goto definition of the [T]ype under cursor" }
) )
vim.keymap.set("n", "gd", require("telescope.builtin").lsp_definitions, { desc = "[G]oto [D]efinition" }) vim.keymap.set("n", "gd", require("telescope.builtin").lsp_definitions, { desc = "[G]oto [D]efinition" })
vim.keymap.set("n", "<leader>cgd", require("telescope.builtin").lsp_type_definitions, vim.keymap.set("n", "<leader>cgd", require("telescope.builtin").lsp_type_definitions, { desc = "Type [D]efinition" })
{ desc = "Type [D]efinition" }) vim.keymap.set("n", "<leader>cR", require("telescope.builtin").lsp_references, { desc = "[G]oto [R]eferences" })
vim.keymap.set("n", "<leader>cR", require("telescope.builtin").lsp_references, vim.keymap.set("n", "<leader>cI", require("telescope.builtin").lsp_implementations, { desc = "[G]oto [I]mplementation" })
{ desc = "[G]oto [R]eferences" }) vim.keymap.set("n", "<leader>cs", require("telescope.builtin").lsp_document_symbols, { desc = "[D]ocument [S]symbols" })
vim.keymap.set("n", "<leader>cI", require("telescope.builtin").lsp_implementations,
{ desc = "[G]oto [I]mplementation" })
vim.keymap.set("n", "<leader>cs", require("telescope.builtin").lsp_document_symbols,
{ desc = "[D]ocument [S]ymbols" })
-- vim.keymap.set("n", "<leader>cgD", vim.lsp.buf.declaration, { desc = "[G]oto [D]eclaration" }) -- vim.keymap.set("n", "<leader>cgD", vim.lsp.buf.declaration, { desc = "[G]oto [D]eclaration" })
end, end,
}, },

View File

@@ -52,7 +52,7 @@ return {
opts = { opts = {
-- Session files stored at: ~/.config/nvim/sessions/ -- Session files stored at: ~/.config/nvim/sessions/
dir = vim.fn.expand(vim.fn.stdpath("config") .. "/sessions/"), dir = vim.fn.expand(vim.fn.stdpath("config") .. "/sessions/"),
options = vim.opt.sessionoptions:get() options = vim.opt.sessionoptions:get(),
-- NOTE: autocmd to autoload sessions at: ../config/autocmd.lua -- NOTE: autocmd to autoload sessions at: ../config/autocmd.lua
}, },
keys = { keys = {
@@ -77,14 +77,4 @@ return {
}, },
}, },
}, },
-- Provides tldr on vertical split
-- `:Tldr [command]`
{
"wlemuel/vim-tldr",
lazy = true,
dependencies = {
"nvim-telescope/telescope.nvim"
},
},
} }

View File

@@ -10,15 +10,15 @@ alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto' alias fgrep='fgrep --color=auto'
alias usersearch="awk -F: '{print \"UserName: \" \$1 \", UserID: \" \$3 \", Home Dir: \" \$6 \", Shell Used: \" \$7}' /etc/passwd | grep" alias usersearch="awk -F: '{print \"UserName: \" \$1 \", UserID: \" \$3 \", Home Dir: \" \$6 \", Shell Used: \" \$7}' /etc/passwd | grep"
alias untar='tar -zxvf ' alias untar='tar -zxvf '
alias wget="wget --hsts-file ${WGET_HSTS_FILE}" alias wget='wget --hsts-file ${WGET_HSTS_FILE}'
alias v="${EDITOR}" alias v='$EDITOR'
alias snvim="${HOMEBREW_PREFIX}/bin/nvim" # Stable nvim alias snvim='${HOMEBREW_PREFIX}/bin/nvim' # Stable nvim
# Directories and Directory listings # Directories and Directory listings
alias ~="cd ~" alias ~="cd ~"
alias ..="cd .." alias ..="cd .."
alias ...='cd ../../../' # Go back 3 directory levels alias ...='cd ../../../' # Go back 3 directory levels
alias cl=clear alias cl=clear
alias lsc='ls --color=auto --hyperlink' alias lsc='ls --color=auto --hyperlink'
@@ -28,7 +28,7 @@ alias lsa="lsc -lAFhZ"
alias mkdir="mkdir -pv" alias mkdir="mkdir -pv"
alias df="df -h" alias df="df -h"
mkcd () { mkcd() {
mkdir "$1" mkdir "$1"
cd "$1" || exit cd "$1" || exit
} }
@@ -41,7 +41,6 @@ alias p8="ping8"
alias p1="ping1" alias p1="ping1"
alias pubip="curl https://ipinfo.io/ip; echo" alias pubip="curl https://ipinfo.io/ip; echo"
alias speedtest="speedtest-cli --secure" alias speedtest="speedtest-cli --secure"
geoip () { geoip() {
curl -s https://ipinfo.io | sed '/readme\|loc\|postal\|{\|}\|hostname/d;s/org/ISP/;s/"\|,$//g' | awk -F ':' 'NF { printf("%10s: %s \n", $1, $2)}' curl -s https://ipinfo.io | sed '/readme\|loc\|postal\|{\|}\|hostname/d;s/org/ISP/;s/"\|,$//g' | awk -F ':' 'NF { printf("%10s: %s \n", $1, $2)}'
} }

View File

@@ -0,0 +1,7 @@
{
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "all"
}

View File

@@ -1,3 +1,5 @@
#!/bin/sh
[ ! -f "/home/linuxbrew/.linuxbrew/bin/brew" ] || eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" [ ! -f "/home/linuxbrew/.linuxbrew/bin/brew" ] || eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# set PATH so it includes user's private bin if it exists # set PATH so it includes user's private bin if it exists
@@ -11,35 +13,38 @@
[ ! -d "$HOME/.local/bin" ] || PATH="$PATH:$HOME/.local/bin" [ ! -d "$HOME/.local/bin" ] || PATH="$PATH:$HOME/.local/bin"
# Set the config directory environment variable # Set the config directory environment variable
[ -n "$XDG_CONFIG_HOME" ] || export XDG_CONFIG_HOME="$HOME/.config" [ "$XDG_CONFIG_HOME" != "" ] || export XDG_CONFIG_HOME="$HOME/.config"
# Set the cache directory environment variable # Set the cache directory environment variable
[ -n "$XDG_CACHE_HOME" ] || export XDG_CACHE_HOME="$HOME/.cache" [ "$XDG_CACHE_HOME" != "" ] || export XDG_CACHE_HOME="$HOME/.cache"
# Set the data directory environment variable # Set the data directory environment variable
[ -n "$XDG_DATA_HOME" ] || export XDG_DATA_HOME="$HOME/.local/share" [ "$XDG_DATA_HOME" != "" ] || export XDG_DATA_HOME="$HOME/.local/share"
# Set the state directory environment variable # Set the state directory environment variable
[ -n "$XDG_STATE_HOME" ] || export XDG_STATE_HOME="$HOME/.local/state" [ "$XDG_STATE_HOME" != "" ] || export XDG_STATE_HOME="$HOME/.local/state"
################################################################################## ##################################################################################
eval "$(ssh-agent -s)" >/dev/null eval "$(ssh-agent -s)" >/dev/null
ulimit -n 10240 ulimit -n 10240
[ ! -f "$XDG_CONFIG_HOME/templates/.gitignore" ] || export GITIGNORE_TEMPLATE="$XDG_CONFIG_HOME/templates/.gitignore"
[ ! -f "$XDG_CONFIG_HOME/templates/.prettierrc" ] || export PRETTIER_TEMPLATE="$XDG_CONFIG_HOME/templates/.prettierrc"
EDITOR=$(command -v nvim 2>/dev/null || command -v vim 2>/dev/null) EDITOR=$(command -v nvim 2>/dev/null || command -v vim 2>/dev/null)
export EDITOR export EDITOR
export VISUAL=$EDITOR export VISUAL="$EDITOR"
# Manually follow steps from https://steamcommunity.com/app/646570/discussions/1/3935537639868400686 # Manually follow steps from https://steamcommunity.com/app/646570/discussions/1/3935537639868400686
# To disable ~/.oracle_jre_usage/ from being created # To disable ~/.oracle_jre_usage/ from being created
if [ "$(uname -s)" = "Linux" ]; then if [ "$(uname -s)" = "Linux" ]; then
export __GL_SHADER_DISK_CACHE_PATH="$XDG_CACHE_HOME/nvidia" export __GL_SHADER_DISK_CACHE_PATH="$XDG_CACHE_HOME/nvidia"
# Needs upstream fix to work: https://bugs.kde.org/show_bug.cgi?id=415770 # Needs upstream fix to work: https://bugs.kde.org/show_bug.cgi?id=415770
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0" export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0"
export CUDA_CACHE_PATH="XDG_CACHE_HOME/nv" export CUDA_CACHE_PATH="XDG_CACHE_HOME/nv"
# Map caps-lock to escape TIP: also added to /etc/profile # Map caps-lock to escape TIP: also added to /etc/profile
setxkbmap -option caps:escape setxkbmap -option caps:escape
@@ -48,7 +53,7 @@ fi
export QT_PLUGIN_PATH="$HOME/local/lib/qt/plugins/:" export QT_PLUGIN_PATH="$HOME/local/lib/qt/plugins/:"
if [ "$XDG_SESSION_DESKTOP" = "KDE" ]; then if [ "$XDG_SESSION_DESKTOP" = "KDE" ]; then
export KDEHOME="$XDG_CONFIG_HOME/KDE" export KDEHOME="$XDG_CONFIG_HOME/KDE"
fi fi
export GNUPGHOME="$XDG_CONFIG_HOME/gnupg" export GNUPGHOME="$XDG_CONFIG_HOME/gnupg"
@@ -94,6 +99,6 @@ export AWS_SHARED_CREDENTIALS_FILE="$XDG_CONFIG_HOME/aws/credentials"
export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker" export DOCKER_CONFIG="$XDG_CONFIG_HOME/docker"
export FZF_DEFAULT_COMMAND='rg --files --hidden' export FZF_DEFAULT_COMMAND='rg --files --hidden'
export FZF_DEFAULT_OPTS='--layout=reverse --inline-info --height=~50% --border' export FZF_DEFAULT_OPTS='--layout=reverse --cycle --inline-info --height=~50% --border'
export TLDR_CACHE_DIR="$XDG_CACHE_HOME/tldr" export TLDR_CACHE_DIR="$XDG_CACHE_HOME/tldr"

24
common/.vscode/argv.json vendored Normal file
View File

@@ -0,0 +1,24 @@
// This configuration file allows you to pass permanent command line arguments to VS Code.
// Only a subset of arguments is currently supported to reduce the likelyhood of breaking
// the installation.
//
// PLEASE DO NOT CHANGE WITHOUT UNDERSTANDING THE IMPACT
//
// NOTE: Changing this file requires a restart of VS Code.
{
// Use software rendering instead of hardware accelerated rendering.
// This can help in cases where you see rendering issues in VS Code.
// "disable-hardware-acceleration": true,
// Enabled by default by VS Code to resolve color issues in the renderer
// See https://github.com/Microsoft/vscode/issues/51791 for details
"disable-color-correct-rendering": true,
// Allows to disable crash reporting.
// Should restart the app if the value is changed.
"enable-crash-reporter": false,
// Unique id used for correlating crash reports sent from this instance.
// Do not edit this value.
"crash-reporter-id": "663adebd-ee7d-4d1f-9723-fd963e7e8e1a"
}

1
common/.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1 @@
{}

View File

@@ -2,14 +2,13 @@
# Directories and Directory listings # Directories and Directory listings
dir_size(){ dir_size(){
local dir if [ "$1" = "" ]; then
if [ -z "$1" ]; then dir="$PWD"
dir="${PWD}"
else else
dir="$1" dir="$1"
fi fi
du -ah "${dir}" --max-depth=1 | sort -hr du -ah "$dir" --max-depth=1 | sort -hr
} }
alias tldr="tldr --platform=linux " alias tldr="tldr --platform=linux "
@@ -43,24 +42,23 @@ alias fpmreset73="sudo systemctl restart php7.3-fpm"
alias fpmreset74="sudo systemctl restart php7.4-fpm" alias fpmreset74="sudo systemctl restart php7.4-fpm"
f2b_banned_ips() { f2b_banned_ips() {
local provided_jail=$1 provided_jail=$1
if [ -n "${provided_jail// /}" ]; then if [ "${provided_jail// /}" != "" ]; then
for ip in $(sudo fail2ban-client status "${provided_jail}" | tail -1 | sed 's/[^:]*://;s/\s*//') for ip in "$(sudo fail2ban-client status "$provided_jail" | tail -1 | sed 's/[^:]*://;s/\s*//')"
do do
printf "%17s\n" "$ip" printf "%17s\n" "$ip"
done done
else else
local total_ips_banned=0 total_ips_banned=0
for JAIL in $(sudo fail2ban-client status | tail -1 | sed 's/[^:]*://;s/\s*//;s/,//g') for JAIL in "$(sudo fail2ban-client status | tail -1 | sed 's/[^:]*://;s/\s*//;s/,//g')"
do do
local banned_ip_count banned_ip_count=$(sudo fail2ban-client status "$JAIL" | grep -oP 'Currently banned:\s*\K\d+')
banned_ip_count=$(sudo fail2ban-client status "${JAIL}" | grep -oP 'Currently banned:\s*\K\d+')
if [ "${banned_ip_count}" -gt 0 ]; then if [ "$banned_ip_count" -gt 0 ]; then
echo "${JAIL}: ${banned_ip_count}" echo "${JAIL}: ${banned_ip_count}"
for ip in $(sudo fail2ban-client status "${JAIL}" | tail -1 | sed 's/[^:]*://;s/\s*//') for ip in "$(sudo fail2ban-client status "$JAIL" | tail -1 | sed 's/[^:]*://;s/\s*//')"
do do
printf "%17s\n" "[$ip]" printf "%17s\n" "[$ip]"
done done
@@ -78,24 +76,23 @@ f2b_banned_ips() {
} }
f2b_unban_ip() { f2b_unban_ip() {
local ip_to_unban="$1" ip_to_unban="$1"
local jail="$2" jail="$2"
# If jail is provided - use that jail to directly unban # If jail is provided - use that jail to directly unban
if [ -n "${jail// /}" ]; then if [ "${jail// /}" != "" ]; then
sudo fail2ban-client set "${jail}" unbanip "${ip_to_unban}" > /dev/null && echo "Successfully released ban" sudo fail2ban-client set "$jail" unbanip "$ip_to_unban" > /dev/null && echo "Successfully released ban"
else else
# Find all JAILS this IP belong to # Find all JAILS this IP belong to
# Unban the ip where ever it is found # Unban the ip where ever it is found
for JAIL in $(sudo fail2ban-client status | tail -1 | sed 's/[^:]*://;s/\s*//;s/,//g') for JAIL in "$(sudo fail2ban-client status | tail -1 | sed 's/[^:]*://;s/\s*//;s/,//g')"
do do
local banned_ip_count banned_ip_count=$(sudo fail2ban-client status "$JAIL" | grep -oP 'Currently banned:\s*\K\d+')
banned_ip_count=$(sudo fail2ban-client status "${JAIL}" | grep -oP 'Currently banned:\s*\K\d+') if [ "$banned_ip_count" -gt 0 ] && [[ $(sudo fail2ban-client status "$JAIL") == *"$ip_to_unban"* ]]; then
if [ "$banned_ip_count" -gt 0 ] && [[ $(sudo fail2ban-client status "${JAIL}") == *"${ip_to_unban}"* ]]; then found_ip="true"
local found_ip="true"
echo "Unbanning from ${JAIL}:" echo "Unbanning from ${JAIL}:"
sudo fail2ban-client set "${JAIL}" unbanip "${ip_to_unban}" > /dev/null && echo "Successfully released ban" sudo fail2ban-client set "$JAIL" unbanip "$ip_to_unban" > /dev/null && echo "Successfully released ban"
fi fi
done done
@@ -107,8 +104,8 @@ f2b_unban_ip() {
} }
f2b_ban_an_ip(){ f2b_ban_an_ip(){
local ip_to_ban=$1 ip_to_ban=$1
local ban_jail=$2 ban_jail=$2
if [[ ( -z "${ip_to_ban// /}" ) || ( -z "${ban_jail// /}" ) ]]; then if [[ ( -z "${ip_to_ban// /}" ) || ( -z "${ban_jail// /}" ) ]]; then
echo "Please provide an IP and a Jail (in that order)" echo "Please provide an IP and a Jail (in that order)"
@@ -116,5 +113,5 @@ f2b_ban_an_ip(){
return 1 return 1
fi fi
sudo fail2ban-client set "${ban_jail}" banip "${ip_to_ban}" > /dev/null && echo "Ban successful" sudo fail2ban-client set "$ban_jail" banip "$ip_to_ban" > /dev/null && echo "Ban successful"
} }

View File

@@ -2,14 +2,13 @@
# Directories and Directory listings # Directories and Directory listings
dir_size() { dir_size() {
local dir if [ "$1" = "" ]; then
if [ -z "$1" ]; then dir="$PWD"
dir="${PWD}" else
else dir="$1"
dir="$1" fi
fi
du -ah "${dir}" -d 1 | sort -hr du -ah "$dir" -d 1 | sort -hr
} }
# Update & Upgrades # Update & Upgrades