You've already forked personal-linux-config
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9cfc86b596 | |||
| 2ba65cce12 | |||
| 5e4a8464c5 | |||
| 2c0ac0f6ab | |||
| 77ab262c43 | |||
| d689420388 | |||
| 1d8ec5e402 | |||
| 8d37dfd5ad | |||
| bea9c85c9a | |||
| 0eb28cf6cc | |||
| 3c9736d165 | |||
| 759f0c9494 |
21
README.md
21
README.md
@@ -6,5 +6,22 @@ Feel free to try or poke around in the source (it's all human-readable bash), or
|
||||
## Usage
|
||||
Explaining section for not-so-intuitive configurations
|
||||
|
||||
- alias `sambaserver`: please `cd` into the directoy is needed to be shared and execute `sambaserver` followed by `"shareuser;<SUBSTITUTE-YOUR-PASSWORD-HERE>"`, then just login with username `shareuser` and the provided password with the host computer as URL/IP, autodiscovery of both the host and the share was tested working on Windows and a Samsung Tablet.
|
||||
- alias `termbin`: use when piping a cat/echo/file/etc to upload to termbin.com (¡requires Netcat!)
|
||||
- alias `sambaserver`: (¡requires Docker!) please `cd` into the directoy is needed to be shared and execute `sambaserver`, then just login with default username `user` and the default password `P4ssw0rd` with the host computer as URL/IP, autodiscovery of both the host and the share was tested working on Windows and a Samsung Tablet.
|
||||
- alias `sambastop`: (¡requires Docker!) when you're finished, this command stops and removes the samba container.
|
||||
- alias `termbin`: (¡requires Netcat!) use when piping a cat/echo/file/etc to upload to termbin.com
|
||||
|
||||
## Modular sourcing mechanism
|
||||
Create a file in your home directory called `~/.bash_sources`, and put a script path on every line of this file, it will be sourced automatically.<br>
|
||||
WARNING: it has to be a full path, for example `/path/to/script.sh` and not abbreviated (as in `~/script.sh`)... idk bash decided like so.<br>
|
||||
WARNING 2: every line needs to be a path to a file, not a direct command, sourcing a file is possible; souring an "export" or a function... not so much!
|
||||
|
||||
#### For example:
|
||||
`/home/user/.bash_sources`:
|
||||
```bash
|
||||
/home/user/.bash_path
|
||||
/path/to/some/other/script.sh
|
||||
```
|
||||
`/home/user/.bash_path`:
|
||||
```bash
|
||||
export PATH=~/bin/myproject/bin:$PATH
|
||||
```
|
||||
|
||||
@@ -1,4 +1,16 @@
|
||||
for source in $(find "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)" -type f | grep -Ev "_all|terminal_fancyfying"); do
|
||||
_source_basedir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)"
|
||||
# Source all the overrides in this folder
|
||||
for source in $(find "${_source_basedir}" -type f | grep -Ev "_all|terminal_fancyfying"); do
|
||||
. "${source}"
|
||||
done
|
||||
. "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)/terminal_fancyfying_${TERMINAL_FANCYFY}"
|
||||
. "${_source_basedir}/terminal_fancyfying_${TERMINAL_FANCYFY}"
|
||||
|
||||
# If the file ~/.bash_sources exist, source every line it contains
|
||||
if [ -f ~/.bash_sources ]; then
|
||||
while IFS= read -r line; do
|
||||
# Skip empty lines and comments (#)
|
||||
if [ -n "$line" ] && ! [[ "$line" == \#* ]]; then
|
||||
. "$line"
|
||||
fi
|
||||
done < ~/.bash_sources
|
||||
fi
|
||||
|
||||
@@ -1,16 +1,22 @@
|
||||
alias pubkey='for PUBKEY_FILE in $(ls ~/.ssh/id_*.pub); do echo "${PUBKEY_FILE} :" | sed -e "s/.*id_//;s/\.pub//"; cat "${PUBKEY_FILE}"; echo; done'
|
||||
alias pubkey='for PUBKEY_FILE in $(ls ~/.ssh/id_*.pub); do echo "${PUBKEY_FILE} :" | sed -e "s/.*id_//;s/\.pub//"; cat "${PUBKEY_FILE}"; ssh-keygen -lf "${PUBKEY_FILE}" -E sha256; echo; done'
|
||||
alias taglist='git tag | tr - \~ | sort -V | tr \~ -'
|
||||
alias desudo="sudo -k"
|
||||
alias hosts='sudo nano /etc/hosts'
|
||||
alias historygrep='history | grep'
|
||||
alias sshconfig='nano ~/.ssh/config'
|
||||
alias aliases='nano ~/.bash_aliases'
|
||||
alias bashrc='. ~/.bashrc'
|
||||
alias bashrc-edit="nano ~/.bashrc"
|
||||
alias sshagent='eval `ssh-agent` && ssh-add ~/.ssh/id_!(*.pub)'
|
||||
alias sshfingerprint='ssh-keygen -lf'
|
||||
alias nocomments='grep -vE "^$|^#|^;"'
|
||||
alias ipecho="curl -fsSL https://ipecho.net/plain; echo"
|
||||
alias newrepo='bash <(curl -s https://get.bjphoster.com/new-git-repo.sh)'
|
||||
alias newansibleworkspace='bash <(curl -s https://get.bjphoster.com/new-ansible-workspace.sh)'
|
||||
alias infinitenothing='while true; do sleep 1; done'
|
||||
|
||||
alias sambaserver='docker run -it --rm -p 137:137 -p 138:138 -p 139:139 -p 445:445 -v `pwd`:/share dperson/samba -n -p -s "share;/share;yes;no;yes" -w "WORKGROUP"'
|
||||
alias sambaserver='docker run -dit --rm --name sambaserver -p 137:137 -p 138:138 -p 139:139 -p 445:445 -v `pwd`:/share dperson/samba -n -p -u "user;P4ssw0rd" -s "share;/share;yes;no;yes;user;user" -w "WORKGROUP"'
|
||||
alias sambastop='docker stop sambaserver; docker rm sambaserver'
|
||||
alias acme.sh='docker run -it --rm -v ~/acme.sh:/acme.sh neilpang/acme.sh'
|
||||
alias termbin='nc termbin.com 9999'
|
||||
alias dnsversion='dig txt chaos version.bind'
|
||||
|
||||
17
bashrc_overrides/deploy
Normal file
17
bashrc_overrides/deploy
Normal file
@@ -0,0 +1,17 @@
|
||||
deploy() {
|
||||
REPO_HOST="git.bjphoster.com/"
|
||||
REPO_ORG="deployments"
|
||||
DEPLOY_DIRECTORY="${DEPLOY_DIRECTORY:-/srv}"
|
||||
SERVICE="$1"
|
||||
if [ "$#" -lt 1 ]; then
|
||||
echo "Usage: deploy <service> [service-name]"
|
||||
echo "Variable overrides: REPO_HOST - REPO_ORG - DEPLOY_DIRECTORY"
|
||||
return
|
||||
fi
|
||||
if [ "$#" -gt 1 ]; then
|
||||
SERVICE_NAME="$2"
|
||||
else
|
||||
SERVICE_NAME="$SERVICE"
|
||||
fi
|
||||
git clone https://$REPO_HOST$REPO_ORG/$SERVICE $DEPLOY_DIRECTORY/$SERVICE_NAME
|
||||
}
|
||||
@@ -21,3 +21,16 @@ __git_prompt() {
|
||||
__git_history() {
|
||||
echo "$(git log --oneline | cut -d ' ' -f 1)"
|
||||
}
|
||||
|
||||
tagpush() {
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: tagpush <tag>"
|
||||
return
|
||||
fi
|
||||
git tag "$1"
|
||||
# for every remote
|
||||
for REMOTE in $(git remote) ; do
|
||||
# push current branch and newly created tag
|
||||
git push "$REMOTE" $(git branch | grep "*" | sed 's/\* //') "$1"
|
||||
done
|
||||
}
|
||||
|
||||
@@ -2,3 +2,7 @@
|
||||
if [ -d "$HOME/bin" ]; then
|
||||
PATH="$HOME/bin:$PATH"
|
||||
fi
|
||||
# also include .local/bin if it exists
|
||||
if [ -d "$HOME/.local/bin" ]; then
|
||||
PATH="$HOME/.local/bin:$PATH"
|
||||
fi
|
||||
|
||||
27
bashrc_overrides/kubernetes
Normal file
27
bashrc_overrides/kubernetes
Normal file
@@ -0,0 +1,27 @@
|
||||
if command -v kubectl >/dev/null 2>&1; then
|
||||
source <(kubectl completion bash)
|
||||
alias k="kubectl"
|
||||
alias kcontext="kubectl config use-context"
|
||||
kns() {
|
||||
if [[ $# -eq 0 ]]; then
|
||||
printf '%s\n' "$(kubectl config view --minify -o jsonpath='{.contexts[0].context.namespace}')"
|
||||
else
|
||||
local ns="${1?Namespace required}"
|
||||
kubectl config set-context --current --namespace "$ns"
|
||||
printf 'Switched current context to namespace: %s\n' "$ns"
|
||||
fi
|
||||
}
|
||||
_kns_completion() {
|
||||
local cur
|
||||
cur=${COMP_WORDS[COMP_CWORD]}
|
||||
COMPREPLY=( $(compgen -W "$(kubectl get namespaces -o name | sed 's|namespace/||')" -- "$cur") )
|
||||
}
|
||||
_kcontext_completion() {
|
||||
local cur
|
||||
cur=${COMP_WORDS[COMP_CWORD]}
|
||||
COMPREPLY=( $(compgen -W "$(kubectl config get-contexts -o name)" -- $cur) )
|
||||
}
|
||||
complete -F __start_kubectl k
|
||||
complete -F _kns_completion kns
|
||||
complete -F _kcontext_completion kcontext
|
||||
fi
|
||||
Reference in New Issue
Block a user