Compare commits
161 Commits
feature-CI
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
72f660c903 | ||
|
14f0bae19f | ||
|
68e7f8ab44 | ||
|
96db94cb44 | ||
|
1bee3139de | ||
|
784782a346 | ||
|
923f0ba039 | ||
|
87d138f1a5 | ||
|
fc67df56b3 | ||
|
a63d3ffe4b | ||
|
0375057b53 | ||
|
d0e7690e43 | ||
|
db6430d3df | ||
|
a9c4b9b782 | ||
|
f58a979dea | ||
|
0316dbb803 | ||
|
dce79dd063 | ||
|
c3887fe8a3 | ||
|
d49efa06f3 | ||
|
d2845586df | ||
|
a37a229670 | ||
|
9504e845c1 | ||
|
4a78a5e9fa | ||
|
27221b850f | ||
|
a31870d764 | ||
|
1957058cf2 | ||
|
d5cdbbb7af | ||
|
2aa56b0965 | ||
|
91c41d33cb | ||
|
ac7bfb46f8 | ||
|
bb0370ae7b | ||
|
709ccc709c | ||
|
b68120da30 | ||
|
f9d012072d | ||
|
0b19d1261d | ||
|
a9feda9383 | ||
|
595443e89b | ||
|
bd54077a9e | ||
|
e17797e5ea | ||
|
bb64eefd44 | ||
|
f734366fac | ||
|
447698b826 | ||
|
34254c50d5 | ||
|
9794f98fd6 | ||
|
5ad4c597fe | ||
|
86525472c0 | ||
|
942e88ac81 | ||
|
01420c2aa7 | ||
|
cda3324d86 | ||
|
aabb0dadc1 | ||
|
641f25cc99 | ||
|
6fdba310b9 | ||
|
a766b96ef1 | ||
|
dde9e3fe3e | ||
|
b88a574495 | ||
|
fa938d9df5 | ||
|
4befc36c8b | ||
|
0d24e86401 | ||
|
b74480c0a5 | ||
|
20376ba6dd | ||
|
8b69958acb | ||
|
a164e38ded | ||
|
159ac66679 | ||
|
a467aca4ca | ||
|
4e7c787e8d | ||
|
29f4e5ecb1 | ||
|
a85ab418ed | ||
|
8d00c2d2f2 | ||
|
90b0df7a17 | ||
|
b57a7bb8ff | ||
|
e5469f5aa8 | ||
|
603c686f48 | ||
|
061b1e4672 | ||
|
56702d74f7 | ||
|
5c464f6128 | ||
|
816fdb8d9b | ||
|
fc337c6d85 | ||
|
f9fbf5bc04 | ||
|
6dc24efc11 | ||
|
b8cada1674 | ||
|
b5567560c0 | ||
|
9083dacce3 | ||
|
8d94407282 | ||
|
c415f35543 | ||
|
dea26329ef | ||
|
38ffbd2250 | ||
|
4d5bfeeb49 | ||
|
9d16247dfe | ||
|
1cf76dee6f | ||
|
0b3d06a3f9 | ||
|
858eebdb91 | ||
|
41a496e1c8 | ||
|
acfe778c4e | ||
|
1e46334538 | ||
|
60cee5b38a | ||
|
3a3fc30b8c | ||
|
336aaa2729 | ||
|
4002d62840 | ||
|
b3db5095dd | ||
|
88e45e329c | ||
|
228982a0a8 | ||
|
e48c7e700a | ||
|
c69bad4acf | ||
|
4055037f6f | ||
|
de1cd32d4d | ||
|
1bbe0e985a | ||
|
c3a54e77b3 | ||
|
9dc733751c | ||
|
056fc58616 | ||
|
f0aa65ef56 | ||
|
bf49e35393 | ||
|
0b1a075290 | ||
|
784d8977d2 | ||
|
ee0d336f2a | ||
|
86709fa128 | ||
|
9e8cc03e01 | ||
|
d7ff4f74fa | ||
|
c6ae66c57d | ||
|
d6ea09d5a5 | ||
|
7d707dad27 | ||
|
372c047d1e | ||
|
1606bf3df3 | ||
|
06a99a8a1f | ||
|
fa26428098 | ||
|
76a53daf9e | ||
|
d39e06b173 | ||
|
325c6849e5 | ||
|
eaa45cff1e | ||
|
3ab5d26b16 | ||
|
afdc467baf | ||
|
0730b2f039 | ||
|
d7e23002d2 | ||
|
49660d667d | ||
|
5cb3673335 | ||
|
8fda3e1d6f | ||
|
7e645f19cb | ||
|
2eaee51534 | ||
|
9f2bb47e9d | ||
|
b8963e1609 | ||
|
3c25793620 | ||
|
0b868ff01f | ||
|
8e48d807d9 | ||
|
dbd9fda324 | ||
|
4e456ca0cd | ||
|
4e525208c1 | ||
|
10140a571f | ||
|
0b20d20ef1 | ||
|
1877117d72 | ||
|
757051c326 | ||
|
438c30f66b | ||
|
1ba70df44d | ||
|
723fbfc4d7 | ||
|
4cc74a4069 | ||
|
a0ab539979 | ||
|
1d378225a5 | ||
|
7ad5884835 | ||
|
0855847f72 | ||
|
6f22a5e29c | ||
|
ed24e3abeb | ||
|
2d0b1e16f6 | ||
|
f0f662f88d |
22
.conform.yaml
Normal file
22
.conform.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
policies:
|
||||
- type: commit
|
||||
spec:
|
||||
header:
|
||||
length: 89
|
||||
imperative: true
|
||||
case: lower
|
||||
invalidLastCharacters: .
|
||||
body:
|
||||
required: false
|
||||
dco: true
|
||||
gpg: false
|
||||
spellcheck:
|
||||
locale: US
|
||||
maximumOfOneCommit: true
|
||||
conventional:
|
||||
types:
|
||||
- type
|
||||
scopes:
|
||||
- scope
|
||||
descriptionLength: 72
|
25
.gitignore
vendored
25
.gitignore
vendored
@ -3,3 +3,28 @@ Gemfile.lock
|
||||
.newjiraissue
|
||||
private_dot_3llo/config.sh
|
||||
*secret*
|
||||
# rainbowstream (twitter client)
|
||||
completer.hist
|
||||
|
||||
# no logs
|
||||
*.log
|
||||
|
||||
# gh / github
|
||||
private_dot_config/gh/state.yml
|
||||
|
||||
# no backups
|
||||
*.bak
|
||||
|
||||
# no secrets
|
||||
private_dot_config/gh/hosts.yml
|
||||
|
||||
# no symbolic links
|
||||
.pre-commit-config.yaml
|
||||
|
||||
# no temp files
|
||||
dot_scripts/version*
|
||||
|
||||
# newsboat (rss reader)
|
||||
*newsboat/cache.db
|
||||
*newsboat/history.cmdline
|
||||
*private_dot_newsboat/queue
|
||||
|
@ -1,61 +0,0 @@
|
||||
# See https://pre-commit.com for more information
|
||||
# See https://pre-commit.com/hooks.html for more hooks
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v2.5.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: end-of-file-fixer
|
||||
- id: check-yaml
|
||||
- id: check-added-large-files
|
||||
- id: check-merge-conflict
|
||||
- id: pretty-format-json
|
||||
- id: check-symlinks
|
||||
- id: detect-aws-credentials
|
||||
- id: detect-private-key
|
||||
- id: flake8
|
||||
- id: requirements-txt-fixer
|
||||
- id: sort-simple-yaml
|
||||
- repo: git://github.com/antonbabenko/pre-commit-terraform
|
||||
rev: v1.27.0 # Get the latest from: https://github.com/antonbabenko/pre-commit-terraform/releases
|
||||
hooks:
|
||||
- id: terraform_fmt
|
||||
- id: terraform_docs
|
||||
- id: terragrunt_fmt
|
||||
- id: terraform_tflint
|
||||
args: ['--deep']
|
||||
- id: terraform_validate
|
||||
- repo: https://github.com/jumanjihouse/pre-commit-hooks
|
||||
sha: 1.11.2
|
||||
hooks:
|
||||
- id: shellcheck
|
||||
- id: shfmt
|
||||
- id: script-must-have-extension
|
||||
- id: git-check
|
||||
# - id: git-dirty
|
||||
- id: forbid-binary
|
||||
- id: bundler-audit
|
||||
- repo: https://github.com/cesar-rodriguez/terrascan
|
||||
rev: v0.2.0
|
||||
hooks:
|
||||
- id: terrascan
|
||||
pass_filenames: false
|
||||
args: [-l=infra] #NOTE: that this is the directory you created earlier to host your terraform
|
||||
verbose: true
|
||||
- repo: https://github.com/askulkarni2/pre-commit-docker-jenkinslint
|
||||
rev: master
|
||||
hooks:
|
||||
- id: docker-jenkinslint
|
||||
language: docker_image
|
||||
entry: --entrypoint /usr/local/bin/run-jflint.sh askulkarni2/jenkinslint
|
||||
files: Jenkinsfile
|
||||
|
||||
#- repo: https://github.com/ansible/ansible-lint.git
|
||||
# rev: v4.1.0
|
||||
# hooks:
|
||||
# - id: ansible-lint
|
||||
# files: \.(yaml|yml)$
|
||||
#- repo: https://github.com/pre-commit/mirrors-autopep8
|
||||
# rev: 'v1.5' # Use the sha / tag you want to point at
|
||||
# hooks:
|
||||
# - id: autopep8
|
11
.pre-commit-search-and-replace.yaml
Normal file
11
.pre-commit-search-and-replace.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
#- search: /Something [bB]ad/
|
||||
# replacement: Something Good
|
||||
#- search: foobar
|
||||
# insensitive: true
|
||||
# replacement: FOOBAR
|
||||
- search: collibra
|
||||
insensitive: true
|
||||
- search: ~/Code
|
||||
- search: TODO
|
||||
- search: FIXME
|
5
.relint.yml
Normal file
5
.relint.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
- name: No FIXME
|
||||
pattern: FIXME
|
||||
- name: No TODO
|
||||
pattern: TODO
|
46
Brewfile
46
Brewfile
@ -1,6 +1,7 @@
|
||||
tap "homebrew/bundle"
|
||||
tap "homebrew/cask"
|
||||
tap "homebrew/core"
|
||||
tap "homeport/tap"
|
||||
# Tap for chezmoi
|
||||
tap "twpayne/taps"
|
||||
# Tap for real path
|
||||
@ -21,7 +22,11 @@ tap "skanehira/docui" # provides docui, simple terminal UI for creating/configur
|
||||
tap "romkatv/powerlevel10k" # provides powerlevel10k
|
||||
tap "shopify/shopify" # provides toxiproxy
|
||||
tap "homebrew/cask-fonts" # provides fonts used by vim-devicons https://vimawesome.com/plugin/vim-devicons https://github.com/ryanoasis/nerd-fonts#font-installation
|
||||
|
||||
tap "wtfutil/wtfutil" # https://wtfutil.com/getting_started/installation/
|
||||
cask "cyberduck"
|
||||
cask "docker"
|
||||
cask "lens"
|
||||
cask "obsidian"
|
||||
cask "java"
|
||||
cask "iterm2"
|
||||
cask "zoomus"
|
||||
@ -57,6 +62,7 @@ cask "dropbox"
|
||||
cask "rescuetime"
|
||||
cask "wireshark"
|
||||
cask "font-hack-nerd-font" # provides fonts used by vim-devicons https://vimawesome.com/plugin/vim-devicons https://github.com/ryanoasis/nerd-fonts#font-installation
|
||||
cask "yacreader"
|
||||
|
||||
# Mac app store
|
||||
mas 'Keynote', id: 409183694
|
||||
@ -66,6 +72,7 @@ mas 'Pages', id: 409201541
|
||||
mas 'GarageBand', id: 682658836
|
||||
mas 'Numbers', id: 409203825
|
||||
|
||||
brew "homeport/tap/havener"
|
||||
brew "zsh"
|
||||
brew "git-ftp"
|
||||
brew "gnu-sed"
|
||||
@ -73,11 +80,12 @@ brew "hugo"
|
||||
brew "inetutils"
|
||||
brew "ncftp"
|
||||
brew "plantuml"
|
||||
brew "python3"
|
||||
brew "ripgrep"
|
||||
brew "twpayne/taps/chezmoi"
|
||||
brew "tmux"
|
||||
brew "node"
|
||||
brew "direnv"
|
||||
brew "fish"
|
||||
|
||||
# Fasd (pronounced similar to "fast") is a command-line productivity booster. https://github.com/clvv/fasd
|
||||
brew "fasd"
|
||||
@ -107,7 +115,8 @@ brew "asciidoc"
|
||||
brew "bash-snippets"
|
||||
# Mac App Store command line interface
|
||||
brew "mas"
|
||||
# Using pyenv to be able to install specific python versions https://stackoverflow.com/questions/49794432/how-to-setup-a-pipenv-python-3-6-project-if-os-python-version-is-3-5
|
||||
# Using pyenv to be able to install specific python versions https://stackoverflow.com/questions/49794432/how-to-setup-a-pipenv-python-3-6-project-if-os-
|
||||
-version-is-3-5
|
||||
brew "pyenv"
|
||||
# Google CLI https://github.com/jarun/googler
|
||||
brew "googler"
|
||||
@ -141,13 +150,23 @@ brew "aspell"
|
||||
brew "neofetch"
|
||||
# add nushell https://github.com/nushell/nushell
|
||||
brew "nushell"
|
||||
brew "ncspot"
|
||||
brew "python@3.10"
|
||||
brew "pipx"
|
||||
brew "watch"
|
||||
|
||||
# tools for K8S
|
||||
brew "kubectl"
|
||||
brew "kubectx"
|
||||
brew "kube-linter"
|
||||
brew "kubernetes-cli"
|
||||
brew "kustomize"
|
||||
brew "popeye" # Kubernetes resources sanity analysis
|
||||
|
||||
brew "packer"
|
||||
brew "go"
|
||||
brew "golangci-lint"
|
||||
brew "gopls"
|
||||
brew "weechat" # need an IRC client
|
||||
brew "tflint" # terraform linter
|
||||
brew "ktlint" # kotlin linter
|
||||
@ -155,6 +174,8 @@ brew "cmake" # compiler, was needed for compiling YouCompleteMe, see https://git
|
||||
brew "zola" # a simple and fast static site generator
|
||||
brew "rustup" # Install Rust
|
||||
brew "jq" # add jq utility for parsing json
|
||||
brew "jsonlint"
|
||||
brew "gron"
|
||||
brew "octant" # k8s cluster viewer
|
||||
brew "telepresence" # telepresence https://www.telepresence.io/reference/install
|
||||
brew "ansiweather" # https://github.com/fcambus/ansiweather
|
||||
@ -170,7 +191,6 @@ brew "tac" # Needed for some terraform modules at work
|
||||
brew "coreutils"
|
||||
brew "gh" # GitHub CLI
|
||||
brew "bash" # time to upgrade bash
|
||||
brew "popeye" # Kubernetes resources sanity analysis
|
||||
brew "pre-commit" # https://pre-commit.com/#install
|
||||
brew "terraform-docs" # https://github.com/segmentio/terraform-docs
|
||||
brew "shfmt" # format shell
|
||||
@ -189,3 +209,21 @@ brew "powerlevel10k"
|
||||
brew "translate-shell" # provides the trans command, more doc via https://www.ostechnix.com/use-google-translate-commandline-linux/
|
||||
brew "toxiproxy"
|
||||
brew "bitwarden-cli"
|
||||
brew "awscli@2"
|
||||
brew "newsboat"
|
||||
brew "wtfutil"
|
||||
brew "tfenv"
|
||||
brew "tokei"
|
||||
brew "fd"
|
||||
brew "git-delta"
|
||||
brew "sn0int"
|
||||
brew "prettier"
|
||||
brew "diffutils"
|
||||
brew "switchaudio-osx"
|
||||
brew "findutils"
|
||||
brew "git-extras"
|
||||
brew "broot"
|
||||
brew "jxplorer"
|
||||
brew "android-file-transfer"
|
||||
brew "aws-vault"
|
||||
brew "asciinema"
|
||||
|
37
README.md
37
README.md
@ -1,38 +1,51 @@
|
||||
# Introduction
|
||||
|
||||
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### Centos
|
||||
|
||||
`yum install git -y`
|
||||
|
||||
## Setup
|
||||
|
||||
```
|
||||
git clone https://github.com/MorganGeek/dotfiles.git ~/Code/dotfiles
|
||||
~/Code/dotfiles/dot_scripts/bootstrap.sh
|
||||
git clone https://github.com/MorganGeek/dotfiles.git $HOME/Code/dotfiles
|
||||
$HOME/Code/dotfiles/dot_scripts/bootstrap.sh
|
||||
```
|
||||
|
||||
### Run
|
||||
|
||||
run `.scripts/bootstrap.sh`
|
||||
|
||||
### Reload
|
||||
|
||||
run `zsh .scripts/reload.sh`
|
||||
|
||||
### Upgrade
|
||||
|
||||
run `zsh .scripts/upgrade.sh`
|
||||
|
||||
### Scope
|
||||
* Use SDKMan to install development tools
|
||||
* Install Docker Desktop for Mac
|
||||
* Install asciidoctor-pdf
|
||||
* Install Oh My Zsh and some cool dependencies
|
||||
* OSX Defaults
|
||||
* Install NPM dependencies
|
||||
* Install pip and pipenv
|
||||
* Install AWS-CLI
|
||||
|
||||
### If Yubico is installed, run this :
|
||||
- Use SDKMan to install development tools
|
||||
- Install Docker Desktop for Mac
|
||||
- Install asciidoctor-pdf
|
||||
- Install Oh My Zsh and some cool dependencies
|
||||
- OSX Defaults
|
||||
- Install NPM dependencies
|
||||
- Install pip and pipenv
|
||||
- Install AWS-CLI
|
||||
|
||||
### If Yubico is installed, run this
|
||||
|
||||
`sudo ansible-playbook ~/.scripts/ansible/macsecure_playbook.yaml`
|
||||
|
||||
#### In cases of `\n` errors with zsh
|
||||
https://github.com/robbyrussell/oh-my-zsh/issues/6764#issuecomment-384045008
|
||||
|
||||
[Source](https://github.com/robbyrussell/oh-my-zsh/issues/6764#issuecomment-384045008)
|
||||
|
||||
```
|
||||
cd $ZSH
|
||||
git config core.autocrlf false
|
||||
|
29
centos.sh
29
centos.sh
@ -53,7 +53,7 @@ chmod 755 /bin/git-ftp
|
||||
yum install golang golang-godoc golang-vet golang-src golang-pkg-linux-amd64 -y
|
||||
echo "export GOPATH=\"$HOME/go\"" >>~/.zshrc
|
||||
echo "export PATH=\"$GOPATH/bin:$PATH\"" >>~/.zshrc
|
||||
. ~/.zshrc
|
||||
. "$HOME/.zshrc"
|
||||
|
||||
# Install Hugo
|
||||
mkdir "$HOME/src"
|
||||
@ -68,15 +68,12 @@ yum -y install telnet ftp rsh traceroute
|
||||
# FTP UI
|
||||
yum -y install filezilla
|
||||
|
||||
# Install SDK Man
|
||||
curl -s "https://get.sdkman.io" | bash
|
||||
source "/root/.sdkman/bin/sdkman-init.sh"
|
||||
~/.scripts/sdkmandeps.sh
|
||||
|
||||
# Install Plantuml
|
||||
sdk install java
|
||||
curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download -o /usr/local/bin/plantuml.jar &&
|
||||
echo 'java -jar /usr/local/bin/plantuml.jar $@' >/usr/local/bin/plantuml &&
|
||||
chmod +x /usr/local/bin/plantuml
|
||||
echo 'java -jar /usr/local/bin/plantuml.jar $@' >/usr/local/bin/plantuml &&
|
||||
chmod +x /usr/local/bin/plantuml
|
||||
|
||||
# Using pyenv to be able to install specific python versions https://stackoverflow.com/questions/49794432/how-to-setup-a-pipenv-python-3-6-project-if-os-python-version-is-3-5
|
||||
curl https://pyenv.run | bash
|
||||
@ -170,21 +167,21 @@ sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/goog
|
||||
|
||||
# Install BAT (cat with more power)
|
||||
wget https://github.com/sharkdp/bat/releases/download/v0.11.0/bat-v0.11.0-x86_64-unknown-linux-musl.tar.gz &&
|
||||
tar -xzvf bat-v0.11.0-x86_64-unknown-linux-musl.tar.gz &&
|
||||
mv bat-v0.11.0-x86_64-unknown-linux-musl/bat /usr/local/bin/ &&
|
||||
rm -rf bat-v0.11.0-x86_64-unknown-linux-musl*
|
||||
tar -xzvf bat-v0.11.0-x86_64-unknown-linux-musl.tar.gz &&
|
||||
mv bat-v0.11.0-x86_64-unknown-linux-musl/bat /usr/local/bin/ &&
|
||||
rm -rf bat-v0.11.0-x86_64-unknown-linux-musl*
|
||||
|
||||
# Install fselect
|
||||
cargo install fselect
|
||||
|
||||
# surfraw
|
||||
git clone --depth 1 https://gitlab.com/surfraw/Surfraw.git &&
|
||||
cd Surfraw &&
|
||||
./prebuild &&
|
||||
./configure &&
|
||||
make && make install &&
|
||||
cd .. &&
|
||||
rm -rf Surfraw
|
||||
cd Surfraw &&
|
||||
./prebuild &&
|
||||
./configure &&
|
||||
make && make install &&
|
||||
cd .. &&
|
||||
rm -rf Surfraw
|
||||
|
||||
# Dictionary
|
||||
yum -y install dictd
|
||||
|
@ -2,6 +2,12 @@
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AboutToPasteTabsWithCancel</key>
|
||||
<true/>
|
||||
<key>AboutToPasteTabsWithCancel_selection</key>
|
||||
<integer>2</integer>
|
||||
<key>AlternateMouseScroll</key>
|
||||
<true/>
|
||||
<key>AppleAntiAliasingThreshold</key>
|
||||
<integer>1</integer>
|
||||
<key>AppleScrollAnimationEnabled</key>
|
||||
@ -17,7 +23,7 @@
|
||||
<key>LoadPrefsFromCustomFolder</key>
|
||||
<true/>
|
||||
<key>NSNavLastRootDirectory</key>
|
||||
<string>~</string>
|
||||
<string>/Applications</string>
|
||||
<key>NSNavPanelExpandedSizeForOpenMode</key>
|
||||
<string>{712, 448}</string>
|
||||
<key>NSQuotedKeystrokeBinding</key>
|
||||
@ -52,13 +58,21 @@
|
||||
<key>NSTableView Supports v2 KeyBingingTable</key>
|
||||
<true/>
|
||||
<key>NSWindow Frame NSFontPanel</key>
|
||||
<string>1111 136 445 77 0 0 1680 1027 </string>
|
||||
<string>944 202 445 77 0 0 1920 1057 </string>
|
||||
<key>NSWindow Frame ProfilesPanel</key>
|
||||
<string>275 596 735 382 0 0 1680 1027 </string>
|
||||
<key>NSWindow Frame SUStatusFrame</key>
|
||||
<string>640 674 400 129 0 0 1680 1027 </string>
|
||||
<key>NSWindow Frame SUUpdateAlert</key>
|
||||
<string>650 498 620 392 0 0 1920 1057 </string>
|
||||
<key>NSWindow Frame SessionsPreferences</key>
|
||||
<string>-1651 117 606 469 -1920 -30 1920 1057 </string>
|
||||
<string>220 84 606 469 0 0 1680 1027 </string>
|
||||
<key>NSWindow Frame SharedPreferences</key>
|
||||
<string>-1683 427 796 486 -1920 -30 1920 1057 </string>
|
||||
<string>236 550 796 486 0 0 1920 1057 </string>
|
||||
<key>NSWindow Frame iTerm Window 0</key>
|
||||
<string>-757 48 650 527 -1920 -30 1920 1057 </string>
|
||||
<string>-1482 354 650 452 -1920 -102 1920 1057 </string>
|
||||
<key>NSWindow Frame iTerm Window 1</key>
|
||||
<string>2355 366 650 452 1920 0 1920 1057 </string>
|
||||
<key>New Bookmarks</key>
|
||||
<array>
|
||||
<dict>
|
||||
@ -261,8 +275,8 @@
|
||||
<key>Red Component</key>
|
||||
<real>0.0055023282766342163</real>
|
||||
</dict>
|
||||
<key>Background Image Location</key>
|
||||
<string></string>
|
||||
<key>Background Image Is Tiled</key>
|
||||
<false/>
|
||||
<key>Badge Color</key>
|
||||
<dict>
|
||||
<key>Alpha Component</key>
|
||||
@ -276,10 +290,12 @@
|
||||
<key>Red Component</key>
|
||||
<real>1</real>
|
||||
</dict>
|
||||
<key>Blend</key>
|
||||
<real>0.050000000000000003</real>
|
||||
<key>Blinking Cursor</key>
|
||||
<false/>
|
||||
<key>Blur</key>
|
||||
<false/>
|
||||
<true/>
|
||||
<key>Bold Color</key>
|
||||
<dict>
|
||||
<key>Blue Component</key>
|
||||
@ -299,6 +315,8 @@
|
||||
<integer>80</integer>
|
||||
<key>Command</key>
|
||||
<string></string>
|
||||
<key>Cursor Boost</key>
|
||||
<real>0.0</real>
|
||||
<key>Cursor Color</key>
|
||||
<dict>
|
||||
<key>Blue Component</key>
|
||||
@ -667,7 +685,7 @@
|
||||
<real>0.0</real>
|
||||
</dict>
|
||||
<key>Minimum Contrast</key>
|
||||
<real>0.0</real>
|
||||
<real>0.72345525568181823</real>
|
||||
<key>Mouse Reporting</key>
|
||||
<true/>
|
||||
<key>Name</key>
|
||||
@ -677,7 +695,7 @@
|
||||
<key>Non-ASCII Anti Aliased</key>
|
||||
<true/>
|
||||
<key>Normal Font</key>
|
||||
<string>MesloLGMForPowerline-Regular 14</string>
|
||||
<string>HackNerdFontCompleteM-Regular 14</string>
|
||||
<key>Option Key Sends</key>
|
||||
<integer>0</integer>
|
||||
<key>Prompt Before Closing 2</key>
|
||||
@ -725,7 +743,7 @@
|
||||
<key>Terminal Type</key>
|
||||
<string>xterm-256color</string>
|
||||
<key>Transparency</key>
|
||||
<real>0.0</real>
|
||||
<real>0.081466132614213205</real>
|
||||
<key>Unlimited Scrollback</key>
|
||||
<true/>
|
||||
<key>Use Bold Font</key>
|
||||
@ -736,6 +754,10 @@
|
||||
<true/>
|
||||
<key>Use Non-ASCII Font</key>
|
||||
<false/>
|
||||
<key>Use Tab Color</key>
|
||||
<false/>
|
||||
<key>Use Underline Color</key>
|
||||
<false/>
|
||||
<key>Vertical Spacing</key>
|
||||
<real>1</real>
|
||||
<key>Visual Bell</key>
|
||||
@ -1380,6 +1402,8 @@
|
||||
</array>
|
||||
<key>NoSyncHaveRequestedFullDiskAccess</key>
|
||||
<true/>
|
||||
<key>NoSyncHaveUsedCopyMode</key>
|
||||
<true/>
|
||||
<key>NoSyncHaveWarnedAboutPasteConfirmationChange</key>
|
||||
<true/>
|
||||
<key>NoSyncInstallationId</key>
|
||||
@ -1392,6 +1416,10 @@
|
||||
<false/>
|
||||
<key>NoSyncTimeOfFirstLaunchOfVersionWithTip</key>
|
||||
<real>569923461.412552</real>
|
||||
<key>PMPrintingExpandedStateForPrint2</key>
|
||||
<false/>
|
||||
<key>PasteTabToStringTabStopSize</key>
|
||||
<integer>4</integer>
|
||||
<key>PointerActions</key>
|
||||
<dict>
|
||||
<key>Button,1,1,,</key>
|
||||
@ -1427,6 +1455,8 @@
|
||||
</dict>
|
||||
<key>PrefsCustomFolder</key>
|
||||
<string>/Users/morganwattiez</string>
|
||||
<key>Print In Black And White</key>
|
||||
<true/>
|
||||
<key>SUEnableAutomaticChecks</key>
|
||||
<true/>
|
||||
<key>SUFeedAlternateAppNameKey</key>
|
||||
@ -1436,9 +1466,11 @@
|
||||
<key>SUHasLaunchedBefore</key>
|
||||
<true/>
|
||||
<key>SULastCheckTime</key>
|
||||
<date>2019-02-26T13:53:46Z</date>
|
||||
<date>2020-07-19T09:05:45Z</date>
|
||||
<key>SUSendProfileInfo</key>
|
||||
<false/>
|
||||
<key>ShowFullScreenTabBar</key>
|
||||
<false/>
|
||||
<key>TabStyleWithAutomaticOption</key>
|
||||
<integer>4</integer>
|
||||
<key>WordCharacters</key>
|
||||
|
@ -33,6 +33,7 @@
|
||||
"Guid" : "15B87686-16CF-448A-9B73-5E38F56A2179",
|
||||
"Rows" : 25,
|
||||
"Default Bookmark" : "No",
|
||||
"Blend" : 0.050000000000000003,
|
||||
"Cursor Guide Color" : {
|
||||
"Red Component" : 0.70213186740875244,
|
||||
"Color Space" : "sRGB",
|
||||
@ -284,8 +285,7 @@
|
||||
},
|
||||
"Window Type" : 0,
|
||||
"Cursor Boost" : 0,
|
||||
"Background Image Location" : "",
|
||||
"Blur" : false,
|
||||
"Blur" : true,
|
||||
"Badge Color" : {
|
||||
"Red Component" : 1,
|
||||
"Color Space" : "sRGB",
|
||||
@ -307,6 +307,7 @@
|
||||
"Blue Component" : 0.63137254901960782,
|
||||
"Green Component" : 0.63137254901960782
|
||||
},
|
||||
"Background Image Is Tiled" : false,
|
||||
"Name" : "MorganGeek",
|
||||
"Cursor Text Color" : {
|
||||
"Red Component" : 0.027450980392156862,
|
||||
@ -322,7 +323,7 @@
|
||||
"Blue Component" : 0.58823529411764708,
|
||||
"Green Component" : 0.58039215686274515
|
||||
},
|
||||
"Transparency" : 0,
|
||||
"Transparency" : 0.081466132614213205,
|
||||
"Ansi 1 Color" : {
|
||||
"Red Component" : 0.86274509803921573,
|
||||
"Color Space" : "sRGB",
|
||||
|
23
dot_aliases/backlog.sh
Executable file
23
dot_aliases/backlog.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
alias jirasearch='issues'
|
||||
alias cicdlist="jira issue jql \"project = 'CICD' AND resolution = Unresolved\""
|
||||
alias backlogs="jira issue jql \"status = New AND project IN (CICD) AND Created > -2w ORDER BY Priority DESC\""
|
||||
alias bakclogs='backlogs'
|
||||
alias support="jira issue jql \"project in (CICD) AND (Created > -2w AND resolution = Unresolved AND (type = 'Engineering Incident' AND status not in ('Waiting for external information') OR type IN ('Engineering Request', 'Task', 'User Story') AND status in ('New', 'To be picked next')) OR resolution != Unresolved AND status = 'In Progress') ORDER BY key DESC\""
|
||||
alias guardian="support"
|
||||
alias lastissues='jira issue jql "project IN (CICD) AND Created > -2w ORDER BY Created DESC, Priority DESC"'
|
||||
alias workingon="jira issue jql \"assignee = currentUser() AND resolution = Unresolved AND status not in ('In Review', 'Done', 'In Testing', 'Waiting For Build') OR QA = currentUser() AND status = 'In Testing' ORDER BY updated DESC, priority DESC\""
|
||||
alias toreview='jira issue jql "project in (CICD) AND Updated > -2w AND issue.property[development].openprs > 0 ORDER BY Created DESC, Priority ASC"'
|
||||
alias newissues="jira issue jql \"project IN (CICD) AND Created > -2w AND resolution = Unresolved AND status not in ('In Progress') ORDER BY Created DESC, Priority DESC\""
|
||||
alias n='newissues'
|
||||
alias backlog=cicdlist
|
||||
alias bakclog='backlog'
|
||||
alias b='backlog'
|
||||
alias mybacklog="jira issue ls && asana && confluencetasks && trello_web"
|
||||
alias mb='mybacklog'
|
||||
alias myissues='mb'
|
||||
alias me='mb'
|
||||
alias j='jira issue open'
|
||||
alias trello='3llo'
|
||||
alias work='moro'
|
51
dot_aliases/files.sh
Executable file
51
dot_aliases/files.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
alias biggerthan10='biggerthan 10M'
|
||||
alias c='cat'
|
||||
alias h='cd $HOME'
|
||||
alias cp='cp -i' # confirmation before overwrite #
|
||||
alias del='rm -rf'
|
||||
alias mv='mv -i' # confirmation before overwrite
|
||||
alias mkcd='take'
|
||||
alias rm='gomi'
|
||||
alias df='df -H'
|
||||
alias diff='colordiff --side-by-side --ignore-space-change --width=200 --suppress-common-lines --recursive'
|
||||
alias du='ncdu --color dark -rr -x --exclude .git --exclude node_modules'
|
||||
alias ctrl-c='pbcopy'
|
||||
alias s=ls
|
||||
alias sl=ll
|
||||
alias ls='lsd'
|
||||
alias lsg='ll | grip' # show me files matching "ls grep"
|
||||
alias ltr='ls -latr'
|
||||
alias lh='ls -alt | head' # see the last modified files
|
||||
alias tree='ls --almost-all --tree -I .git'
|
||||
alias x='extract'
|
||||
|
||||
# Searching
|
||||
alias searchbook="libgen-cli search --output $HOME/Downloads/Books"
|
||||
|
||||
# Projects shortcuts
|
||||
alias code='cd $HOME/Code'
|
||||
alias blog='z morgangeek-blog'
|
||||
|
||||
# Dotfiles
|
||||
alias cm='chezmoi'
|
||||
alias dots='cd $HOME/Code/dotfiles'
|
||||
alias dotfiles='dots'
|
||||
alias gochezmoi='cd $HOME/.local/share/chezmoi'
|
||||
|
||||
# Viewing files
|
||||
alias cat='bat --style=plain --color "always"'
|
||||
alias preview="fzf --preview 'bat --color \"always\" --style=plain {}' --cycle "
|
||||
alias markdown2='pandoc README.md | lynx -stdin -dump'
|
||||
alias markdown='glow'
|
||||
alias v=vi
|
||||
alias ve='vim $HOME/.vimrc' # vimrc editing
|
||||
alias ze='vim $HOME/.zshrc' # zsh profile editing
|
||||
alias zf='vim $HOME/.zsh_functions' # edit zsh_functions
|
||||
alias za='vim $HOME/.zsh_aliases' # edit zsh_aliases
|
||||
|
||||
# Quick editing
|
||||
alias checkthis='arrow "type Ctrl+Z When done"; \cat > /tmp/file; arrow "Ok now we check your text..."; checkenlist /tmp/file'
|
||||
|
||||
# Linting
|
||||
alias checkreadme='checkenlist README*'
|
16
dot_aliases/git.sh
Executable file
16
dot_aliases/git.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
alias commit='gc'
|
||||
alias gpa='git add -p .'
|
||||
alias gcls='git clone --depth 1 --recurse-submodules'
|
||||
alias gpar='gitpushallremote'
|
||||
alias gpcr='gitpushcurrentremote'
|
||||
alias lg='lazygit'
|
||||
alias neworigin='setorigin'
|
||||
alias origin='setorigin'
|
||||
alias goto='git go'
|
||||
alias master='goto master'
|
||||
alias develop='goto develop'
|
||||
alias gg='git config -l | grip' # search git config for ...
|
||||
alias ucommit='PRE_COMMIT_ALLOW_NO_CONFIG=1 git commit --no-verify'
|
||||
alias gitperso='git config user.name "$GIT_PERSONAL_USER" && git config user.email "$GIT_PERSONAL_EMAIL" && success "using profile $(git whoami)"'
|
||||
alias gitpro='git config user.name "$GIT_PRO_USER" && git config user.email "$GIT_PRO_EMAIL" && success "using profile $(git whoami)"'
|
32
dot_aliases/macos.sh
Executable file
32
dot_aliases/macos.sh
Executable file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
# Show/hide hidden files in Finder
|
||||
alias show="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder"
|
||||
alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder"
|
||||
|
||||
# Hide/show all desktop icons (useful when presenting)
|
||||
alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
|
||||
alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
|
||||
|
||||
# Flush Directory Service cache
|
||||
alias flush="dscacheutil -flushcache && killall -HUP mDNSResponder"
|
||||
alias afk="/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend" # Lock the screen (when going AFK)
|
||||
alias lastlogin="log show --style syslog --last 1d | awk '/Enter/ && /unlockUIBecomesActive/ {print \$1 \" \" \$2}'"
|
||||
alias loginhistory='lastlogin'
|
||||
# Empty the Trash on all mounted volumes and the main HDD.
|
||||
# Also, clear Apple’s System Logs to improve shell startup speed.
|
||||
# Finally, clear download history from quarantine. https://mths.be/bum
|
||||
alias emptytrash="sudo rm -rfv /Volumes/*/.Trashes; sudo rm -rfv $HOME/.Trash; sudo rm -rfv /private/var/log/asl/*.asl; sqlite3 $HOME/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV* 'delete from LSQuarantineEvent'"
|
||||
# via https://github.com/richinfante/dotfiles/blob/0e1df2d833257e3a3ca2e4fcc8f2f128d52b5d29/dotfiles/.profile_setup/30-aliases.sh
|
||||
alias finder="open ."
|
||||
alias cls="clear; printf '\e[3J'"
|
||||
# Sound management
|
||||
alias mute_headset='mute_device "Plantronics BT600"'
|
||||
alias mute_speakers='mute_device "Haut-parleurs MacBook Pro"'
|
||||
alias switch_headset='mute_speakers && switch_device "Plantronics BT600"'
|
||||
alias switch_speakers='mute_headset && switch_device "Haut-parleurs MacBook Pro"'
|
||||
# Meeting management
|
||||
alias zoom="switch_headset && open -na 'zoom.us'"
|
||||
alias nozoom="pkill 'zoom.us' && success 'zoom has been stopped'"
|
||||
alias zoom30='zoomtimeboxed 30'
|
||||
alias zoom60='zoomtimeboxed 60'
|
||||
alias unmute='osascript -e "set volume without output muted"'
|
43
dot_aliases/misc.sh
Executable file
43
dot_aliases/misc.sh
Executable file
@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Misc
|
||||
alias adhoc="ansible --one-line 127.0.0.1 -m"
|
||||
alias ans='adhoc'
|
||||
alias bash="/usr/local/bin/bash"
|
||||
#alias date="gdate"
|
||||
alias away='moro break 10 && coffee'
|
||||
alias afk='away'
|
||||
|
||||
# Protect the / directory - via https://github.com/JanEbbing/mytoolbox/blob/5440831fbd0d1575e595d931d4d35be187cf736e/.bash_aliases
|
||||
alias chown='gchown --preserve-root'
|
||||
alias chmod='gchmod --preserve-root'
|
||||
alias chgrp='gchgrp --preserve-root'
|
||||
alias current_year='`echo date +"%Y"`'
|
||||
alias ftk='file_to_kindle'
|
||||
alias send_to_kindle='file_to_kindle'
|
||||
alias stk='send_to_kindle'
|
||||
alias tokindle='file_to_kindle'
|
||||
alias kindle='to_kindle'
|
||||
alias headers='curl -I --compress' # Find out if remote server supports gzip / mod_deflate or not #
|
||||
alias https='http --default-scheme=https' # useful alias stealed from a colleague. http is provided by httpie
|
||||
alias path='echo -e ${PATH//:/\\n}' # Explode and display current PATH
|
||||
alias p='ps -ef | grip ' # Show matching processes. Usage : p <process name>
|
||||
alias root='sudo -i'
|
||||
alias ':q'='exit'
|
||||
alias current_hour='date +"%H:%M"'
|
||||
alias current_time='current_hour'
|
||||
# FIXME : register the alias only if browser is Chrome based (Google Chrome/Brave/etc)
|
||||
alias meditate='browse chrome-extension://onjcfgnjjbnflacfbnjaapcbiecckilk/popup.html#fullscreen'
|
||||
alias runhooks='pre-commit run -a'
|
||||
# https://unix.stackexchange.com/a/205854/220566
|
||||
alias trim='awk "{\$1=\$1};1"'
|
||||
alias trem="awk '{\$1=\$1};1'"
|
||||
# via https://github.com/richinfante/dotfiles/blob/0e1df2d833257e3a3ca2e4fcc8f2f128d52b5d29/dotfiles/.profile_setup/30-aliases.sh
|
||||
alias lowercase='tr "[[:upper:]]" "[[:lower:]]"'
|
||||
alias uppercase='tr "[[:lower:]]" "[[:upper:]]"'
|
||||
alias to_lower='lowercase'
|
||||
alias to_upper='uppercase'
|
||||
alias tryhook='pre-commit try-repo .'
|
||||
alias whatyear='current_year'
|
||||
alias whathour='current_time'
|
||||
alias whattime='whathour'
|
10
dot_aliases/music.sh
Executable file
10
dot_aliases/music.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
alias music='baton'
|
||||
alias mytracks='music me saved tracks'
|
||||
alias saved='mytracks'
|
||||
alias liked='saved'
|
||||
alias next='music next'
|
||||
alias prev='music prev'
|
||||
alias previous='prev'
|
||||
alias like='music save'
|
||||
alias curr='music status'
|
8
dot_aliases/network.sh
Executable file
8
dot_aliases/network.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
alias ip='echo $(curl ident.me -4 2>/dev/null)'
|
||||
alias ipinfo='curl "ipinfo.io/"$(ip)'
|
||||
alias getips='\egrep "\b(([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}(1[0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]{1,2})\b"'
|
||||
alias ping='prettyping -c 5 --nolegend' # Stop after sending count ECHO_REQUEST packets
|
||||
alias fastping='ping -c 100 -i.2' # don't wait interval 1 second, go fast
|
||||
alias speed-test="docker run --rm -it jariasl/speed-test" # via https://github.com/chrismetcalf/homedir/blob/fc7a9814a3513410b4bf4ec39e9e5bc6e62898e3/.zsh/rc/alias
|
5
dot_aliases/news.sh
Executable file
5
dot_aliases/news.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
alias hack='hacker'
|
||||
alias crypto='curl rate.sx'
|
||||
alias weather='weather "?lang=fr&"'
|
7
dot_aliases/rss.sh
Executable file
7
dot_aliases/rss.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
alias addfeed='rssadd'
|
||||
alias addrss='rssadd'
|
||||
alias rss='newsboat'
|
||||
alias feed='rss'
|
||||
alias feeds='rss'
|
24
dot_aliases/search.sh
Executable file
24
dot_aliases/search.sh
Executable file
@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
alias ddg='ddgr'
|
||||
alias goo='googler'
|
||||
alias se='sr -elvi'
|
||||
alias eg='env | grip' # search env variables for pattern
|
||||
alias engines='sr -elvi'
|
||||
alias grep='rg'
|
||||
alias grip='grep -i'
|
||||
alias usernames="python3 $HOME/Code/sherlock/sherlock.py --rank --print-found"
|
||||
alias ygg="torrengo -s ygg"
|
||||
alias ag='alias | grip' # search for patten among aliases
|
||||
alias hg='history | grip' # search for pattern among history
|
||||
alias hist='history'
|
||||
alias codestats='tokei'
|
||||
alias dups='file_dups'
|
||||
alias pairs='file_getpairs'
|
||||
alias filter_pairs="tr '[:upper:]' '[:lower:]' | \grep -o -E '\w{3,} \w{3,}' | \grep --invert-match --word-regexp --fixed-strings --file=\"\$HOME/stopwords.txt\" | \sed 's/s$//g' | \sed 's/ing$//g' | sort | uniq -c | sort --numeric-sort --reverse"
|
||||
alias sort_count="sort | uniq -c | sort --numeric-sort --reverse"
|
||||
alias words='file_getwords'
|
||||
alias fd="\fd"
|
||||
alias wiki='wikit'
|
||||
alias dico='dict'
|
||||
alias topshellloc='| tr "|" "\n" | grep -v "function" | \grep -Eo "(.*)" | trim | sort | uniq -c | sort -nr'
|
12
dot_aliases/secure.sh
Executable file
12
dot_aliases/secure.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
alias mgmt='ssh $(whoami)@$PROXY_HOST -i $HOME/.ssh/id_ed25519'
|
||||
alias m='mgmt'
|
||||
alias tunnel='ssh -D 8000 -N $(whoami)@$PROXY_HOST -i $HOME/.ssh/id_ed25519'
|
||||
alias gpg2="gpg"
|
||||
alias sshpub='cat $HOME/.ssh/id_ed25519.pub'
|
||||
alias ssla="openssl x509 -alias -noout -in" # Usage : ssla <cert>
|
||||
alias encrypt='ansible-vault encrypt **/vault.yml --vault-password-file=$VAULT_PASSWORD_FILE'
|
||||
alias decrypt='ansible-vault decrypt **/vault.yml --vault-password-file=$VAULT_PASSWORD_FILE'
|
||||
alias bitwarden-cli='bw'
|
||||
alias newpass='bw generate --special --uppercase --lowercase --number --length 30'
|
50
dot_aliases/terraform.sh
Executable file
50
dot_aliases/terraform.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2017 Google Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
alias terraform_landscape='landscape'
|
||||
alias tf='terraform'
|
||||
alias tfa='terraform apply'
|
||||
alias tfc='terraform console'
|
||||
alias tfd='terraform destroy'
|
||||
alias tff='terraform fmt'
|
||||
alias tfg='terraform graph'
|
||||
alias tfim='terraform import'
|
||||
alias tfin='terraform init'
|
||||
alias tfo='terraform output'
|
||||
alias tfp='terraform plan'
|
||||
alias tfpr='terraform providers'
|
||||
alias tfr='terraform refresh'
|
||||
alias tfsh='terraform show'
|
||||
alias tft='terraform taint'
|
||||
alias tfut='terraform untaint'
|
||||
alias tfv='terraform validate'
|
||||
alias tfw='terraform workspace'
|
||||
alias tfs='terraform state'
|
||||
alias tffu='terraform force-unlock'
|
||||
alias tfwst='terraform workspace select'
|
||||
alias tfwsw='terraform workspace show'
|
||||
alias tfssw='terraform state show'
|
||||
alias tfwde='terraform workspace delete'
|
||||
alias tfwls='terraform workspace list'
|
||||
alias tfsls='terraform state list'
|
||||
alias tfwnw='terraform workspace new'
|
||||
alias tfsmv='terraform state mv'
|
||||
alias tfspl='terraform state pull'
|
||||
alias tfsph='terraform state push'
|
||||
alias tfsrm='terraform state rm'
|
||||
alias tfay='terraform apply -auto-approve'
|
||||
alias tfdy='terraform destroy -auto-approve'
|
||||
alias tfinu='terraform init -upgrade'
|
||||
alias tfpde='terraform plan --destroy'
|
49
dot_aliases/terragrunt.sh
Executable file
49
dot_aliases/terragrunt.sh
Executable file
@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright 2017 Google Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
alias tg='terragrunt'
|
||||
alias tga='terragrunt apply'
|
||||
alias tgc='terragrunt console'
|
||||
alias tgd='terragrunt destroy'
|
||||
alias tgf='terragrunt fmt'
|
||||
alias tgg='terragrunt graph'
|
||||
alias tgim='terragrunt import'
|
||||
alias tgin='terragrunt init'
|
||||
alias tgo='terragrunt output'
|
||||
alias tgp='terragrunt plan'
|
||||
alias tgpr='terragrunt providers'
|
||||
alias tgr='terragrunt refresh'
|
||||
alias tgsh='terragrunt show'
|
||||
alias tgt='terragrunt taint'
|
||||
alias tgut='terragrunt untaint'
|
||||
alias tgv='terragrunt validate'
|
||||
alias tgw='terragrunt workspace'
|
||||
alias tgs='terragrunt state'
|
||||
alias tgfu='terragrunt force-unlock'
|
||||
alias tgwst='terragrunt workspace select'
|
||||
alias tgwsw='terragrunt workspace show'
|
||||
alias tgssw='terragrunt state show'
|
||||
alias tgwde='terragrunt workspace delete'
|
||||
alias tgwls='terragrunt workspace list'
|
||||
alias tgsls='terragrunt state list'
|
||||
alias tgwnw='terragrunt workspace new'
|
||||
alias tgsmv='terragrunt state mv'
|
||||
alias tgspl='terragrunt state pull'
|
||||
alias tgsph='terragrunt state push'
|
||||
alias tgsrm='terragrunt state rm'
|
||||
alias tgay='terragrunt apply -auto-approve'
|
||||
alias tgdy='terragrunt destroy -auto-approve'
|
||||
alias tginu='terragrunt init -upgrade'
|
||||
alias tgpde='terragrunt plan --destroy'
|
9
dot_aliases/twitter.sh
Executable file
9
dot_aliases/twitter.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
alias twitter='\t'
|
||||
alias tsearch='twitter search all'
|
||||
alias tweets='tsearch --long -a -d'
|
||||
alias tsearchfav='twitter search favorites'
|
||||
alias tsearchtimeline='twitter search timeline'
|
||||
alias tstream='rainbowstream'
|
||||
alias mystream='tstream'
|
13
dot_aspell.en.prepl
Normal file
13
dot_aspell.en.prepl
Normal file
@ -0,0 +1,13 @@
|
||||
personal_repl-1.1 en 0
|
||||
behing behind
|
||||
bg background
|
||||
branchs branches
|
||||
definenation definition
|
||||
dev development
|
||||
env environment
|
||||
evals evaluates
|
||||
festing Testing
|
||||
prtscn print screen
|
||||
stackoverflow Stack Overflow
|
||||
symblinks symbolic links
|
||||
unix Unix
|
323
dot_aspell.en.pws
Normal file
323
dot_aspell.en.pws
Normal file
@ -0,0 +1,323 @@
|
||||
personal_ws-1.1 en 322
|
||||
ABAP
|
||||
AIX
|
||||
APIs
|
||||
AST
|
||||
ASTs
|
||||
ActionScript
|
||||
Acyclic
|
||||
Ansible
|
||||
Applitools
|
||||
Axios
|
||||
BDD
|
||||
BINDIR
|
||||
Backend
|
||||
Belarussian
|
||||
Bitbucket
|
||||
Bourne
|
||||
Brewfile
|
||||
Builtins
|
||||
CDN
|
||||
CIs
|
||||
CLI
|
||||
CUI
|
||||
CVE
|
||||
CentOS
|
||||
Chai
|
||||
Changelog
|
||||
CircleCI
|
||||
CloudDocs
|
||||
CodeClimate
|
||||
Codefresh
|
||||
Coreutils
|
||||
Cygwin
|
||||
DOM
|
||||
DSL
|
||||
DevOps
|
||||
Diffutils
|
||||
Dockerfile
|
||||
ESLint
|
||||
FaaS
|
||||
Fanboyism
|
||||
Favicon
|
||||
Feng
|
||||
Fortran
|
||||
FreeBSD
|
||||
GKE
|
||||
GPL
|
||||
GatsbyJS
|
||||
Gemfile
|
||||
GitLab
|
||||
Gocui
|
||||
HCL
|
||||
HashiCorp
|
||||
Hirokuni
|
||||
HomeBrew
|
||||
Huawei
|
||||
IRIX
|
||||
IoT
|
||||
JS
|
||||
JWT
|
||||
Jinja
|
||||
KMS
|
||||
Keybind
|
||||
Keybinds
|
||||
Kubernetes
|
||||
LinkedIn
|
||||
MPL
|
||||
MacOS
|
||||
Mackup
|
||||
Maintainer's
|
||||
Metavariable
|
||||
MicroK
|
||||
Microservice
|
||||
Microservices
|
||||
Middleware
|
||||
Minikube
|
||||
Minimalistic
|
||||
NetBSD
|
||||
Netlify
|
||||
OCaml
|
||||
OSS
|
||||
OSX
|
||||
OWASP
|
||||
OpenBSD
|
||||
PRs
|
||||
PagerDuty
|
||||
PluginInstall
|
||||
Postgres
|
||||
PowerShell
|
||||
PrismJS
|
||||
Prolog
|
||||
PyPI
|
||||
README
|
||||
RGB
|
||||
ROI
|
||||
RSS
|
||||
RabbitMQ
|
||||
Redux
|
||||
Repl
|
||||
Repo
|
||||
Roadmap
|
||||
SAST
|
||||
SDKMan
|
||||
SLA
|
||||
SRP
|
||||
Semgrep
|
||||
Serbo
|
||||
Solaris
|
||||
SonarQube
|
||||
Spotify
|
||||
Survivorship
|
||||
TCP
|
||||
TLS
|
||||
TODO
|
||||
Terraform's
|
||||
Terrascan
|
||||
TravisCI
|
||||
UI
|
||||
UTF
|
||||
UX
|
||||
VirtualBox
|
||||
Vundle
|
||||
WSL
|
||||
WinZip
|
||||
YAGNI
|
||||
YAML
|
||||
ansible
|
||||
ansible's
|
||||
ansiweatherrc
|
||||
antipatterns
|
||||
apache
|
||||
args
|
||||
async
|
||||
autocompiled
|
||||
autoescaping
|
||||
autofix
|
||||
autoload
|
||||
autosuggestions
|
||||
awsls
|
||||
azurerm
|
||||
bach
|
||||
backend
|
||||
backends
|
||||
bashtop
|
||||
benchmarking
|
||||
blackbox
|
||||
bundler
|
||||
bzip
|
||||
cd
|
||||
centos
|
||||
chaifeng
|
||||
checkci
|
||||
chmod
|
||||
chsh
|
||||
cmd
|
||||
codebase
|
||||
codebases
|
||||
compat
|
||||
compinit
|
||||
conf
|
||||
config
|
||||
configs
|
||||
copyhooks
|
||||
csv
|
||||
customizable
|
||||
darwin
|
||||
dest
|
||||
dev
|
||||
dir
|
||||
dockerized
|
||||
dotfiles
|
||||
dryrun
|
||||
duplications
|
||||
encodings
|
||||
env
|
||||
esac
|
||||
eslint
|
||||
favicon
|
||||
filesystem
|
||||
frontend
|
||||
fsSL
|
||||
gcc
|
||||
gh
|
||||
gitconfig
|
||||
githook
|
||||
gpg
|
||||
gradle
|
||||
groupinstall
|
||||
gulpfile
|
||||
gz
|
||||
gzip
|
||||
hardcoded
|
||||
hcl
|
||||
headspace
|
||||
homebrew
|
||||
hostname
|
||||
hostnames
|
||||
htop
|
||||
iTerm
|
||||
idempotency
|
||||
impactful
|
||||
init
|
||||
integrations
|
||||
ipsum
|
||||
js
|
||||
json
|
||||
kotlin
|
||||
libxcrypt
|
||||
linter
|
||||
linters
|
||||
linux
|
||||
llo
|
||||
ln
|
||||
localhost
|
||||
lorem
|
||||
macOS
|
||||
macos
|
||||
matcher
|
||||
md
|
||||
metacharacters
|
||||
metavariable
|
||||
metavariables
|
||||
microservices
|
||||
middleware
|
||||
middlewares
|
||||
minified
|
||||
minifies
|
||||
minify
|
||||
misconfiguration
|
||||
mkdir
|
||||
mockall
|
||||
mockfalse
|
||||
mocktrue
|
||||
moro
|
||||
mutexes
|
||||
namespace
|
||||
namespaces
|
||||
neofetch
|
||||
newsboat
|
||||
nitty
|
||||
nms
|
||||
npm
|
||||
parallelization
|
||||
parallelize
|
||||
parallelizing
|
||||
parseable
|
||||
pipenv
|
||||
powerlevel
|
||||
pre
|
||||
presentational
|
||||
programmatically
|
||||
py
|
||||
pyenv
|
||||
pypi
|
||||
qall
|
||||
rebase
|
||||
reconnection
|
||||
regexes
|
||||
repo
|
||||
repos
|
||||
ripgrep
|
||||
robbyrussell
|
||||
rustc
|
||||
rustfmt
|
||||
rustup
|
||||
rvm
|
||||
sSL
|
||||
sSfL
|
||||
scrollbar
|
||||
sdk
|
||||
sed
|
||||
selfupdate
|
||||
semver
|
||||
serverless
|
||||
sherlock
|
||||
snf
|
||||
src
|
||||
stderr
|
||||
stdout
|
||||
stylesheet
|
||||
subcommands
|
||||
subdirectories
|
||||
subdirectory
|
||||
submodule
|
||||
submodules
|
||||
subshell
|
||||
sudo
|
||||
surfraw
|
||||
svn
|
||||
templateDir
|
||||
templatedir
|
||||
templating
|
||||
terraform
|
||||
terrascan
|
||||
textarea
|
||||
toml
|
||||
txt
|
||||
uname
|
||||
uncomment
|
||||
uncommenting
|
||||
unhandled
|
||||
unsave
|
||||
untrapped
|
||||
url
|
||||
usr
|
||||
utils
|
||||
vcs
|
||||
vimrc
|
||||
vlc
|
||||
walkthroughs
|
||||
webpage
|
||||
wget
|
||||
whitepaper
|
||||
whitespace
|
||||
whoami
|
||||
wikit
|
||||
wtf
|
||||
yacc
|
||||
yaml
|
||||
yamllint
|
||||
yml
|
||||
zsh
|
||||
zshrc
|
1
dot_aspell.fr.prepl
Normal file
1
dot_aspell.fr.prepl
Normal file
@ -0,0 +1 @@
|
||||
personal_repl-1.1 fr 0
|
6
dot_aspell.fr.pws
Normal file
6
dot_aspell.fr.pws
Normal file
@ -0,0 +1,6 @@
|
||||
personal_ws-1.1 fr 5
|
||||
Make
|
||||
bash
|
||||
bin
|
||||
pre-commit
|
||||
usr
|
@ -1,2 +1,4 @@
|
||||
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
|
||||
source /Users/morganwattiez/.config/broot/launcher/bash/br
|
||||
|
@ -1,61 +1,120 @@
|
||||
---
|
||||
# See https://pre-commit.com for more information
|
||||
# See https://pre-commit.com/hooks.html for more hooks
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v2.5.0
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v3.1.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: end-of-file-fixer
|
||||
- id: check-yaml
|
||||
- id: check-added-large-files
|
||||
- id: check-case-conflict
|
||||
- id: check-executables-have-shebangs
|
||||
- id: check-json
|
||||
- id: check-merge-conflict
|
||||
- id: pretty-format-json
|
||||
- id: check-symlinks
|
||||
- id: check-yaml
|
||||
- id: check-xml
|
||||
- id: detect-aws-credentials
|
||||
- id: detect-private-key
|
||||
- id: flake8
|
||||
- id: end-of-file-fixer
|
||||
- id: mixed-line-ending
|
||||
- id: pretty-format-json
|
||||
- id: requirements-txt-fixer
|
||||
- id: sort-simple-yaml
|
||||
- repo: git://github.com/antonbabenko/pre-commit-terraform
|
||||
rev: v1.27.0 # Get the latest from: https://github.com/antonbabenko/pre-commit-terraform/releases
|
||||
- id: trailing-whitespace
|
||||
- repo: https://gitlab.com/pycqa/flake8.git
|
||||
rev: master
|
||||
hooks:
|
||||
- id: flake8
|
||||
- repo: git://github.com/antonbabenko/pre-commit-terraform
|
||||
rev: v1.31.0 # Get the latest from: https://github.com/antonbabenko/pre-commit-terraform/releases
|
||||
hooks:
|
||||
- id: terraform_fmt
|
||||
- id: terraform_docs
|
||||
- id: terragrunt_fmt
|
||||
- id: terraform_docs
|
||||
- id: terraform_docs_without_aggregate_type_defaults
|
||||
- id: terraform_tflint
|
||||
args: ['--deep']
|
||||
args: [--deep]
|
||||
- id: terraform_validate
|
||||
- repo: https://github.com/jumanjihouse/pre-commit-hooks
|
||||
sha: 1.11.2
|
||||
- id: terraform_tfsec
|
||||
#- repo: https://github.com/ansible/ansible-lint.git
|
||||
# rev: v4.1.0
|
||||
# hooks:
|
||||
#- id: ansible-lint
|
||||
# files: \.(yaml|yml)$
|
||||
- repo: git@github.com:jorisroovers/gitlint.git
|
||||
rev: v0.13.1
|
||||
hooks:
|
||||
- id: gitlint
|
||||
- repo: https://github.com/jumanjihouse/pre-commit-hooks
|
||||
rev: 1.11.2
|
||||
hooks:
|
||||
- id: shellcheck
|
||||
- id: shfmt
|
||||
- id: script-must-have-extension
|
||||
- id: git-check
|
||||
# - id: git-dirty
|
||||
- id: forbid-binary
|
||||
- id: bundler-audit
|
||||
- repo: https://github.com/cesar-rodriguez/terrascan
|
||||
rev: v0.2.0
|
||||
- id: markdownlint
|
||||
- repo: https://github.com/jumanjihouse/pre-commit-hook-yamlfmt
|
||||
rev: 0.0.11
|
||||
hooks:
|
||||
- id: yamlfmt
|
||||
- repo: https://github.com/cesar-rodriguez/terrascan
|
||||
rev: v0.2.1
|
||||
hooks:
|
||||
- id: terrascan
|
||||
pass_filenames: false
|
||||
args: [-l=infra] #NOTE: that this is the directory you created earlier to host your terraform
|
||||
verbose: true
|
||||
- repo: https://github.com/askulkarni2/pre-commit-docker-jenkinslint
|
||||
- repo: https://github.com/Lucas-C/pre-commit-hooks-nodejs
|
||||
rev: v1.1.1
|
||||
hooks:
|
||||
- id: htmlhint
|
||||
args: [--config, .htmlhintrc]
|
||||
- id: htmllint
|
||||
- id: markdown-toc
|
||||
args: [--indent, ' ', -i]
|
||||
- id: dockerfile_lint
|
||||
args: [--json, --verbose, --dockerfile]
|
||||
- repo: https://github.com/lovesegfault/beautysh
|
||||
rev: 6.0.1
|
||||
hooks:
|
||||
- id: beautysh
|
||||
- repo: https://github.com/mattlqx/pre-commit-search-and-replace
|
||||
rev: v1.0.3
|
||||
hooks:
|
||||
- id: search-and-replace
|
||||
- repo: https://github.com/codingjoe/relint
|
||||
rev: 1.2.0
|
||||
hooks:
|
||||
- id: relint
|
||||
- repo: git@github.com:Vimjas/vint.git
|
||||
rev: master
|
||||
hooks:
|
||||
- id: vint
|
||||
# install with `pre-commit install -t commit-msg`
|
||||
- repo: https://github.com/talos-systems/conform
|
||||
rev: master
|
||||
hooks:
|
||||
- id: conform
|
||||
stages:
|
||||
- commit-msg
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: check-committer
|
||||
name: Check Committer Identity
|
||||
entry: pre-commit-verify-committer
|
||||
language: system
|
||||
always_run: true
|
||||
files: ''
|
||||
- repo: https://github.com/askulkarni2/pre-commit-docker-jenkinslint
|
||||
rev: 88dd7702e44bbc4dc742b37897e1ded7fe99dfba
|
||||
hooks:
|
||||
- id: docker-jenkinslint
|
||||
language: docker_image
|
||||
entry: --entrypoint /usr/local/bin/run-jflint.sh askulkarni2/jenkinslint
|
||||
files: Jenkinsfile
|
||||
|
||||
#- repo: https://github.com/ansible/ansible-lint.git
|
||||
# rev: v4.1.0
|
||||
# hooks:
|
||||
# - id: ansible-lint
|
||||
# files: \.(yaml|yml)$
|
||||
#- repo: https://github.com/pre-commit/mirrors-autopep8
|
||||
# rev: 'v1.5' # Use the sha / tag you want to point at
|
||||
# hooks:
|
||||
# - id: autopep8
|
||||
- repo: git@github.com:amperser/proselint.git
|
||||
rev: 0.10.2
|
||||
hooks:
|
||||
- id: proselint
|
||||
|
19
dot_git-template/.pre-commit-minimal-config.yaml
Normal file
19
dot_git-template/.pre-commit-minimal-config.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
---
|
||||
# See https://pre-commit.com for more information
|
||||
# See https://pre-commit.com/hooks.html for more hooks
|
||||
repos:
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: check-committer
|
||||
name: Check Committer Identity
|
||||
entry: pre-commit-verify-committer
|
||||
language: system
|
||||
always_run: true
|
||||
files: ''
|
||||
- repo: https://github.com/askulkarni2/pre-commit-docker-jenkinslint
|
||||
rev: 88dd7702e44bbc4dc742b37897e1ded7fe99dfba
|
||||
hooks:
|
||||
- id: docker-jenkinslint
|
||||
language: docker_image
|
||||
entry: --entrypoint /usr/local/bin/run-jflint.sh askulkarni2/jenkinslint
|
||||
files: Jenkinsfile
|
@ -6,8 +6,34 @@
|
||||
tags = log --no-walk --tags --pretty=\"%h %d %s\" --decorate=full
|
||||
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
|
||||
st = status
|
||||
|
||||
# View abbreviated SHA, description, and history graph of the latest 20 commits.
|
||||
l = log --pretty=oneline -n 20 --graph --abbrev-commit
|
||||
|
||||
# View the current working tree status using the short format.
|
||||
s = status -s
|
||||
|
||||
# Show the diff between the latest commit and the current state.
|
||||
d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"
|
||||
|
||||
# `git di $number` shows the diff between the state `$number` revisions ago and the current state.
|
||||
di = !"d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d"
|
||||
|
||||
# Switch to a branch, creating it if necessary.
|
||||
go = "!f() { git checkout -b \"$1\" 2> /dev/null || git checkout \"$1\"; }; f"
|
||||
|
||||
# Show verbose output about tags, branches or remotes
|
||||
tags = tag -l
|
||||
branches = branch --all
|
||||
remotes = remote --verbose
|
||||
|
||||
# List contributors with number of commits.
|
||||
contributors = shortlog --summary --numbered
|
||||
contrib = ! git log --pretty=format:'%aN' | sort | uniq -c | sort -nr
|
||||
whois = ! sh -c 'git log -i --pretty=\"format:%an <%ae>\" --author=\"\" | sort -u' -
|
||||
|
||||
# Show the user email for the current repository.
|
||||
whoami = config user.email
|
||||
di = diff -w --color-words=.
|
||||
ac = ! git add . && git commit -v
|
||||
unstage = reset HEAD
|
||||
@ -24,11 +50,60 @@
|
||||
--format=\"%ad\" \
|
||||
--date=\"format:%H\" \
|
||||
| awk '{n=$1+0;if(H[n]++>max)max=H[n]}END{for(i=0;i<24;i++){printf\"%02d -%5d \",i,H[i];for(n=0;n<H[i]/max*50;n++){printf \"*\"}print\"\"}}'"
|
||||
|
||||
# Find commits by source code
|
||||
fc = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short -S$1; }; f"
|
||||
|
||||
# Find commits by commit message
|
||||
fm = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short --grep=$1; }; f"
|
||||
|
||||
# Credit an author on the latest commit.
|
||||
credit = "!f() { git commit --amend --author \"$1 <$2>\" -C HEAD; }; f"
|
||||
|
||||
# List aliases.
|
||||
aliases = config --get-regexp alias
|
||||
|
||||
# Amend the currently staged files to the latest commit.
|
||||
amend = commit --amend --reuse-message=HEAD
|
||||
|
||||
[help]
|
||||
autocorrect = -1 # not more git psuh
|
||||
|
||||
[init]
|
||||
templateDir = /Users/morganwattiez/.git-template
|
||||
|
||||
[core]
|
||||
pager = diff-so-fancy | less --tabs=4 -RFX
|
||||
pager = delta --line-numbers --diff-highlight
|
||||
# Treat spaces before tabs and all kinds of trailing whitespace as an error.
|
||||
# [default] trailing-space: looks for spaces at the end of a line
|
||||
# [default] space-before-tab: looks for spaces before tabs at the beginning of a line
|
||||
whitespace = space-before-tab,-indent-with-non-tab,trailing-space
|
||||
|
||||
[diff]
|
||||
noprefix = true
|
||||
|
||||
[apply]
|
||||
# Detect whitespace errors when applying a patch.
|
||||
whitespace = fix
|
||||
|
||||
[branch]
|
||||
# Show most recently changed branches first.
|
||||
sort = -committerdate
|
||||
tool = colordiff
|
||||
|
||||
[difftool "colordiff"]
|
||||
cmd = colordiff -ydw \"$LOCAL\" \"$REMOTE\"
|
||||
|
||||
[url "git@github.com:"]
|
||||
insteadOf = https://github.com/
|
||||
|
||||
[difftool]
|
||||
prompt = false
|
||||
|
||||
[delta]
|
||||
plus-color = "#012800"
|
||||
minus-color = "#340001"
|
||||
theme = Monokai Extended
|
||||
|
||||
[interactive]
|
||||
diffFilter = delta --color-only
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
- hosts: localhost
|
||||
connection: local
|
||||
become_method: sudo
|
||||
become: yes
|
||||
@ -7,15 +7,15 @@
|
||||
tasks:
|
||||
- name: Check yubikey binaries are installed
|
||||
stat:
|
||||
path: "{{ item }}"
|
||||
path: '{{ item }}'
|
||||
with_items:
|
||||
- /usr/local/bin/ykpamcfg
|
||||
- "/Applications/YubiKey\ Manager.app/Contents/MacOS/ykman"
|
||||
- /Applications/YubiKey Manager.app/Contents/MacOS/ykman
|
||||
|
||||
- name: Check Yubico is recognized
|
||||
shell: "'/Applications/YubiKey Manager.app/Contents/MacOS/ykman' list | awk '{print $6}'"
|
||||
register: yubicoChallenge
|
||||
failed_when: "yubicoChallenge.rc != 0 or yubicoChallenge.stdout == ''"
|
||||
failed_when: yubicoChallenge.rc != 0 or yubicoChallenge.stdout == ''
|
||||
|
||||
- name: Get current user
|
||||
become: false
|
||||
@ -24,14 +24,14 @@
|
||||
|
||||
- name: Check yubico challenge exists
|
||||
stat:
|
||||
path: "/Users/{{ username_on_host.stdout }}/.yubico/challenge-{{ yubicoChallenge.stdout }}"
|
||||
path: /Users/{{ username_on_host.stdout }}/.yubico/challenge-{{ yubicoChallenge.stdout }}
|
||||
|
||||
- name: Ensure yubikey is needed for authentication at login screen
|
||||
lineinfile:
|
||||
path: "{{ item }}"
|
||||
regexp: '^auth.*pam_yubico.so.*'
|
||||
line: "auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response"
|
||||
insertbefore: "^account required pam_opendirectory.so"
|
||||
path: '{{ item }}'
|
||||
regexp: ^auth.*pam_yubico.so.*
|
||||
line: auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response
|
||||
insertbefore: ^account required pam_opendirectory.so
|
||||
state: absent
|
||||
with_items:
|
||||
- /etc/pam.d/screensaver
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
- hosts: localhost
|
||||
connection: local
|
||||
become_method: sudo
|
||||
become: yes
|
||||
@ -7,15 +7,15 @@
|
||||
tasks:
|
||||
- name: Check yubikey binaries are installed
|
||||
stat:
|
||||
path: "{{ item }}"
|
||||
path: '{{ item }}'
|
||||
with_items:
|
||||
- /usr/local/bin/ykpamcfg
|
||||
- "/Applications/YubiKey\ Manager.app/Contents/MacOS/ykman"
|
||||
- /Applications/YubiKey Manager.app/Contents/MacOS/ykman
|
||||
|
||||
- name: Check Yubico is recognized
|
||||
shell: "'/Applications/YubiKey Manager.app/Contents/MacOS/ykman' list | awk '{print $6}'"
|
||||
register: yubicoChallenge
|
||||
failed_when: "yubicoChallenge.rc != 0 or yubicoChallenge.stdout == ''"
|
||||
failed_when: yubicoChallenge.rc != 0 or yubicoChallenge.stdout == ''
|
||||
|
||||
- name: Get current user
|
||||
become: false
|
||||
@ -24,23 +24,23 @@
|
||||
|
||||
- name: Check yubico challenge exists
|
||||
stat:
|
||||
path: "/Users/{{ username_on_host.stdout }}/.yubico/challenge-{{ yubicoChallenge.stdout }}"
|
||||
path: /Users/{{ username_on_host.stdout }}/.yubico/challenge-{{ yubicoChallenge.stdout }}
|
||||
|
||||
- name: Ensure yubikey is needed for authentication at login screen
|
||||
lineinfile:
|
||||
path: "{{ item }}"
|
||||
regexp: '^auth.*pam_yubico.so.*'
|
||||
line: "auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response"
|
||||
insertbefore: "^account required pam_opendirectory.so"
|
||||
path: '{{ item }}'
|
||||
regexp: ^auth.*pam_yubico.so.*
|
||||
line: auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response
|
||||
insertbefore: ^account required pam_opendirectory.so
|
||||
with_items:
|
||||
- /etc/pam.d/screensaver
|
||||
- /etc/pam.d/authorization
|
||||
|
||||
- name: Ensure touch id is enough to authenticate with sudo
|
||||
lineinfile:
|
||||
path: "{{ item }}"
|
||||
regexp: '^auth.*sufficient.*pam_tid.so.*'
|
||||
line: "auth sufficient pam_tid.so"
|
||||
insertafter: "^#.*"
|
||||
path: '{{ item }}'
|
||||
regexp: ^auth.*sufficient.*pam_tid.so.*
|
||||
line: auth sufficient pam_tid.so
|
||||
insertafter: ^#.*
|
||||
with_items:
|
||||
- /etc/pam.d/sudo
|
||||
|
@ -1,237 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
# Make sure Code directory exists
|
||||
|
||||
echo "Hello $(whoami)! Let's get you set up."
|
||||
|
||||
# Make sure Code directory exists
|
||||
echo "mkdir -p $HOME/Code"
|
||||
mkdir -p ~/Code
|
||||
ln -snf ~/Code/dotfiles/dot_scripts ~/.scripts
|
||||
chmod +x ~/.scripts/*.sh
|
||||
mkdir -p "$HOME/Code"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_scripts" "$HOME/.scripts"
|
||||
chmod +x "$HOME/.scripts/*.sh"
|
||||
|
||||
# Install missing package (Linux)
|
||||
case "$(uname -s)" in
|
||||
Linux)
|
||||
echo "(Linux) Installing Development Tools"
|
||||
yum install sudo -y
|
||||
sudo yum groupinstall 'Development Tools' -y
|
||||
sudo yum install git which zip unzip ruby curl file docker gcc make libxcrypt-compat vim-enhanced -y
|
||||
;;
|
||||
esac
|
||||
|
||||
# Install HomeBrew
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) installing homebrew"
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
# Prevent `Error: Your Homebrew is outdated. Please run `brew update`.`
|
||||
echo "Updating Homebrew"
|
||||
brew update
|
||||
;;
|
||||
esac
|
||||
"$HOME/.scripts/install_linux_packages.sh"
|
||||
"$HOME/.scripts/install_homebrew.sh"
|
||||
|
||||
# Path to ruby
|
||||
export PATH="/usr/local/opt/ruby/bin:$PATH"
|
||||
|
||||
# Create symbolic links
|
||||
echo "Creating symbolic links"
|
||||
ln -snf ~/Code/dotfiles/dot_profile ~/.profile
|
||||
ln -snf ~/.local/share/chezmoi/ ~/dotfiles
|
||||
ln -snf ~/Code/dotfiles/Gemfile ~/Gemfile
|
||||
ln -snf ~/Code/dotfiles/README.md ~/README.md
|
||||
ln -snf ~/Code/dotfiles/dot_bash_profile ~/.bash_profile
|
||||
ln -snf ~/Code/dotfiles/dot_gitconfig ~/.gitconfig
|
||||
ln -snf ~/Code/dotfiles/dot_macos ~/.macos
|
||||
ln -snf ~/Code/dotfiles/dot_scripts ~/.scripts
|
||||
ln -snf ~/Code/dotfiles/dot_scripts/checkci.sh /usr/local/bin/checkci
|
||||
ln -snf ~/Code/dotfiles/dot_vimrc ~/.vimrc
|
||||
# custom linters
|
||||
ln -snf ~/Code/dotfiles/dot_vim/ale_linters ~/.vim/ale_linters
|
||||
"$HOME/.scripts/symbolic_links.sh"
|
||||
|
||||
ln -snf ~/Code/dotfiles/dot_zsh_aliases ~/.zsh_aliases
|
||||
ln -snf ~/Code/dotfiles/dot_zsh_functions ~/.zsh_functions
|
||||
ln -snf ~/Code/dotfiles/dot_zshrc ~/.zshrc
|
||||
ln -snf ~/Code/dotfiles/dot_zshrc.pre-oh-my-zsh ~/.zshrc.pre-oh-my-zsh
|
||||
ln -snf ~/Code/dotfiles/private_dot_ssh/config ~/.ssh/config
|
||||
ln -snf ~/Code/dotfiles/requirements.txt ~/requirements.txt
|
||||
ln -snf ~/Code/dotfiles/dot_surfraw.conf ~/.surfraw.conf
|
||||
ln -snf ~/Code/dotfiles/private_dot_3llo/config.sh ~/.3llo_config
|
||||
ln -snf ~/Code/dotfiles/dot_ansiweatherrc ~/.ansiweatherrc
|
||||
ln -snf ~/Code/dotfiles/dot_p10k.zsh ~/.p10k.zsh
|
||||
ln -snf ~/Code/dotfiles/dot_git-template ~/.git-template
|
||||
|
||||
# Other symblinks + Install Docker Desktop for Mac
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) Adding symbolic links"
|
||||
ln -snf "$HOME/.config/Code/User/settings.json" "$HOME/Library/Application Support/Code/User/settings.json"
|
||||
ln -snf "$HOME/Library/Mobile Documents/com~apple~CloudDocs/Mackup/Library/Application Support/Code/User/snippets" "$HOME/Library/Application Support/Code/User/snippets"
|
||||
ln -snf "$HOME/Library/Mobile Documents/com~apple~CloudDocs/Mackup/.mackup.cfg" "$HOME/.mackup.cfg"
|
||||
echo "(Mac OS X) Installing Docker"
|
||||
~/.scripts/install_docker_for_mac.sh
|
||||
;;
|
||||
esac
|
||||
|
||||
# Install dependencies (apps, fonts, ...) with Brew
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) Brew installing stuff (apps, fonts, ...)"
|
||||
ln -snf ~/Code/dotfiles/Brewfile ~/Brewfile
|
||||
brew bundle
|
||||
;;
|
||||
esac
|
||||
|
||||
# Install dependencies (apps, fonts, ...) for CentOS
|
||||
case "$(uname -s)" in
|
||||
Linux)
|
||||
echo "(CentOS) Installing stuff (apps, ...)"
|
||||
chmod +x ~/Code/dotfiles/centos.sh
|
||||
~/Code/dotfiles/centos.sh
|
||||
;;
|
||||
esac
|
||||
# Install user applications
|
||||
"$HOME/.scripts/install_macpackages.sh"
|
||||
"$HOME/.scripts/install_linux_user_apps.sh"
|
||||
|
||||
# Switch to ZSH
|
||||
echo "switching to ZSH"
|
||||
command -v zsh >>/etc/shells
|
||||
chsh -s "$(command -v zsh)"
|
||||
|
||||
# Use SDKMan to install development tools
|
||||
echo "Installing SDKMan as development tools manager"
|
||||
curl -s "https://get.sdkman.io" | bash
|
||||
|
||||
echo "SDKMan installing development tools"
|
||||
sdk install java
|
||||
sdk install gradle
|
||||
sdk install java 8.0.222-zulu
|
||||
sdk install kotlin
|
||||
echo "SDKMan updating"
|
||||
sdk selfupdate
|
||||
|
||||
case "$(uname -s)" in
|
||||
Linux)
|
||||
echo '(Linux) Installing ruby'
|
||||
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
|
||||
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
|
||||
curl -L get.rvm.io | bash -s stable
|
||||
source /etc/profile.d/rvm.sh
|
||||
rvm reload
|
||||
rvm requirements run
|
||||
rvm install 2.3.7
|
||||
;;
|
||||
esac
|
||||
|
||||
# Install bundler for managing ruby dependencies and Gemfile
|
||||
echo "Installing bundler for managing ruby dependencies and Gemfile"
|
||||
sudo gem install bundler
|
||||
bundle install
|
||||
|
||||
# Install Oh My Zsh and some cool dependencies
|
||||
echo "Installing Oh My Zsh + customizing themes and plugins"
|
||||
echo 'source /usr/local/opt/powerlevel10k/powerlevel10k.zsh-theme' ~/.zshrc >>!
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||
git clone https://github.com/AlexisBRENON/oh-my-zsh-reminder "$ZSH_CUSTOM/plugins/reminder"
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$ZSH_CUSTOM/plugins/zsh-syntax-highlighting"
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions "$ZSH_CUSTOM/plugins/zsh-autosuggestions"
|
||||
ln -snf ~/Code/dotfiles/dot_zshrc ~/.zshrc
|
||||
ln -snf ~/Code/dotfiles/dot_zshrc.pre-oh-my-zsh ~/.zshrc.pre-oh-my-zsh
|
||||
|
||||
echo "Installing Vundle + VIM Plugins"
|
||||
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||
vim +PluginInstall +qall >/dev/null
|
||||
#https://github.com/ycm-core/YouCompleteMe/blob/master/README.md#installation
|
||||
cd "$HOME/.vim/bundle/YouCompleteMe" || exit
|
||||
./install.py --all
|
||||
cd "$HOME" || exit
|
||||
git clone https://github.com/dbeniamine/cheat.sh-vim.git ~/.vim/cheat.sh-vim
|
||||
|
||||
# Install no-more-secrets
|
||||
echo "Installing no-more-secrets (for fun)"
|
||||
git clone https://github.com/bartobri/no-more-secrets.git ~/Code/no-more-secrets
|
||||
cd "$HOME/Code/no-more-secrets" || exit
|
||||
make nms sneakers
|
||||
sudo make install
|
||||
cd "$HOME" || exit
|
||||
|
||||
# OSX Defaults
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) Loading preferences"
|
||||
sudo sh .macos
|
||||
;;
|
||||
esac
|
||||
|
||||
# Customize /etc/hosts
|
||||
echo "Overriding /etc/hosts"
|
||||
curl https://someonewhocares.org/hosts/hosts -o /etc/hosts
|
||||
|
||||
# Install pip and pipenv
|
||||
echo "Installing pip and pipenv"
|
||||
sudo easy_install pip
|
||||
sudo pip install --upgrade pip
|
||||
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
|
||||
sudo python3 get-pip.py
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) Updating PATH for loading pip user installed packages"
|
||||
ln -snf /usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin/pip pip3
|
||||
export PATH="$PATH:/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/bin/:/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin"
|
||||
;;
|
||||
esac
|
||||
echo "Upgrading pip"
|
||||
sudo pip install --upgrade pip
|
||||
echo "Pip installing stuff"
|
||||
pip install -r requirements.txt
|
||||
|
||||
# was used for some slack cli in python... https://pypi.org/project/slack-cli/
|
||||
# pip3 install pipenv
|
||||
# pyenv install 3.6.0
|
||||
|
||||
# Install baton (CLI to manage Spotify playback) https://github.com/joshuathompson/baton
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo '(Mac OS X) Installing baton (spotify CLI)'
|
||||
curl -sSL https://github.com/joshuathompson/baton/releases/download/0.1.7/baton-0.1.7-darwin-amd64 -o /usr/local/bin/baton && chmod +x /usr/local/bin/baton
|
||||
;;
|
||||
|
||||
Linux)
|
||||
echo '(Linux) Installing baton (spotify CLI)'
|
||||
curl -sSL https://github.com/joshuathompson/baton/releases/download/0.1.7/baton-0.1.7-linux-amd64 -o /usr/local/bin/baton && chmod +x /usr/local/bin/baton
|
||||
;;
|
||||
*)
|
||||
echo 'Non supported OS : Installation aborted for baton (spotify CLI)'
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
# Use rustup to install the Rust compiler (rustc) and the Rust package manager (cargo).
|
||||
echo "Installing Rust compiler and package manager"
|
||||
rustup-init -y
|
||||
rustup component add rustfmt
|
||||
# Install pa11y tool for local webpage accessibility analysis
|
||||
echo "Installing pa11y tool for local webpage accessibility analysis"
|
||||
npm install -g pa11y
|
||||
|
||||
git clone https://github.com/sherlock-project/sherlock.git ~/Code/sherlock
|
||||
cd sherlock || exit
|
||||
python3 -m pip install -r requirements.txt
|
||||
|
||||
git config --global init.templateDir ~/.git-template
|
||||
pre-commit init-templatedir ~/.git-template
|
||||
"$HOME/.scripts/sdkmandeps.sh"
|
||||
"$HOME/.scripts/rubydeps.sh"
|
||||
"$HOME/.scripts/bundlerdeps.sh"
|
||||
"$HOME/.scripts/ohmyzshdeps.sh"
|
||||
"$HOME/.scripts/vimdeps.sh"
|
||||
"$HOME/.scripts/load_macos_defaults.sh"
|
||||
"$HOME/.scripts/configure_etc_hosts.sh"
|
||||
"$HOME/.scripts/pythondeps.sh"
|
||||
"$HOME/.scripts/install_baton.sh"
|
||||
"$HOME/.scripts/rustdeps.sh"
|
||||
"$HOME/.scripts/npmdeps.sh"
|
||||
|
||||
terraform-docs completion zsh >/usr/local/share/zsh/site-functions/_terraform-docs
|
||||
autoload -U compinit && compinit
|
||||
|
||||
go get -u -v github.com/jessfraz/dockfmt
|
||||
go get -u -v github.com/dmlittle/scenery
|
||||
go get -u -v github.com/camptocamp/terraboard
|
||||
|
||||
sudo curl -L git.io/scope -o /usr/local/bin/scope
|
||||
sudo chmod a+x /usr/local/bin/scope
|
||||
#scope launch
|
||||
|
||||
# Upgrade
|
||||
echo "Upgrading apps"
|
||||
~/.scripts/upgrade.sh
|
||||
|
||||
# Reload
|
||||
echo "Reloading config"
|
||||
~/.scripts/reload.sh
|
||||
"$HOME/.scripts/godeps.sh"
|
||||
"$HOME/.scripts/install_weavescope.sh"
|
||||
"$HOME/.scripts/install_bashtop.sh"
|
||||
"$HOME/.scripts/install_awsls.sh"
|
||||
"$HOME/.scripts/install_bach.sh" # Bash testing framework
|
||||
"$HOME/.scripts/install_broot.sh"
|
||||
"$HOME/.scripts/configure_git_hooks.sh"
|
||||
"$HOME/.scripts/upgrade.sh"
|
||||
"$HOME/.scripts/reload.sh"
|
||||
|
5
dot_scripts/bundlerdeps.sh
Executable file
5
dot_scripts/bundlerdeps.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Install bundler for managing ruby dependencies and Gemfile
|
||||
echo "Installing bundler for managing ruby dependencies and Gemfile"
|
||||
sudo gem install bundler
|
||||
bundle install
|
@ -1,7 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
###
|
||||
### checkci — checks a Jenkinsfile syntax against a real Jenkins instance
|
||||
###
|
||||
### Note: this script gets:
|
||||
### the (jenkins) username from git config
|
||||
### the (jenkins) password/secret from Environment variable $JENKINS_SECRET
|
||||
### the (jenkins) URL from Environment variable $JENKINS_URL
|
||||
###
|
||||
### Usage:
|
||||
### checkci.sh [jenkinsfile]
|
||||
###
|
||||
### Options:
|
||||
### [input] path to Jenkinsfile (optional).
|
||||
### -h Show this message.
|
||||
|
||||
help() {
|
||||
gsed -rn 's/^### ?//;T;p' "$0"
|
||||
}
|
||||
|
||||
if [[ $# == 0 ]] || [[ "$1" == "-h" ]]; then
|
||||
help
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function _checkci() {
|
||||
local username
|
||||
username="$(git config --global -l | grep "user.email" | cut -d'@' -f1 | cut -d'=' -f2)"
|
||||
username="$(git config --global -l G "user.email" | cut -d'@' -f1 | cut -d'=' -f2)"
|
||||
local jenkinsfile="${1:-Jenkinsfile}"
|
||||
curl --user "$username:$JENKINS_SECRET" -X POST -F "jenkinsfile=<$jenkinsfile" "$JENKINS_URL/pipeline-model-converter/validate"
|
||||
}
|
||||
|
0
dot_scripts/cleanup.sh
Normal file → Executable file
0
dot_scripts/cleanup.sh
Normal file → Executable file
0
dot_scripts/configure.sh
Normal file → Executable file
0
dot_scripts/configure.sh
Normal file → Executable file
4
dot_scripts/configure_etc_hosts.sh
Executable file
4
dot_scripts/configure_etc_hosts.sh
Executable file
@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
# Customize /etc/hosts
|
||||
echo "Overriding /etc/hosts"
|
||||
curl https://someonewhocares.org/hosts/hosts -o /etc/hosts
|
6
dot_scripts/configure_git_hooks.sh
Executable file
6
dot_scripts/configure_git_hooks.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copy pre-commit hooks
|
||||
cd "$HOME/Code/dotfiles" || exit
|
||||
git config --global init.templateDir ~/.git-template
|
||||
pre-commit init-templatedir ~/.git-template
|
||||
copyhooks
|
166
dot_scripts/git-overview.py
Executable file
166
dot_scripts/git-overview.py
Executable file
@ -0,0 +1,166 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Origin : https://github.com/qznc/dot/blob/master/bin/git-overview
|
||||
Gather a general overview from a git repository.
|
||||
It shall identify the major contributors within a project.
|
||||
It shall identify interesting parts in the code.
|
||||
"""
|
||||
|
||||
from subprocess import check_output
|
||||
from datetime import datetime
|
||||
from os.path import splitext
|
||||
|
||||
_CMD_AUTHOR_HISTORY = 'git log --date=iso --format="format:%an;%ad;%G?;%H"'
|
||||
_CMD_FILELIST = "git ls-files"
|
||||
_CMD_COMMIT_FILES_CHANGES = "git diff-tree --no-commit-id --name-only -r "
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
FileInfo = namedtuple("FileInfo", "path,authors,commits,firstc,lastc")
|
||||
|
||||
|
||||
def read_log_data():
|
||||
total_commits = 0
|
||||
authors = dict()
|
||||
files = dict()
|
||||
raw = check_output(_CMD_AUTHOR_HISTORY, shell=True, universal_newlines=True)
|
||||
for line in raw.split("\n"):
|
||||
total_commits += 1
|
||||
name, dt, signed, hash = line.split(";")
|
||||
if not name in authors:
|
||||
authors[name] = (datetime.now(), datetime(1900, 1, 1), 0)
|
||||
first, last, count = authors[name]
|
||||
when = datetime.strptime(dt[:-6], "%Y-%m-%d %H:%M:%S")
|
||||
if when < first:
|
||||
first = when
|
||||
if when > last:
|
||||
last = when
|
||||
authors[name] = (first, last, count + 1)
|
||||
craw = check_output(
|
||||
_CMD_COMMIT_FILES_CHANGES + hash, shell=True, universal_newlines=True
|
||||
)
|
||||
for file in craw.split("\n"):
|
||||
if file == "":
|
||||
continue
|
||||
if file in files:
|
||||
fi = files[file]
|
||||
else:
|
||||
files[file] = fi = dict(
|
||||
path=file,
|
||||
authors=set(),
|
||||
commits=0,
|
||||
firstc=datetime.now(),
|
||||
lastc=datetime(1900, 1, 1),
|
||||
)
|
||||
fi["authors"].add(name)
|
||||
fi["commits"] += 1
|
||||
if when < fi["firstc"]:
|
||||
fi["firstc"] = when
|
||||
if when > fi["lastc"]:
|
||||
fi["lastc"] = when
|
||||
return authors, files, total_commits
|
||||
|
||||
|
||||
def readable_duration(dur):
|
||||
"""Given a timedelta object, returns a human-readable string"""
|
||||
if dur.days > 0:
|
||||
if dur.days > 365 * 2:
|
||||
return "%d years" % (dur.days / 365)
|
||||
elif dur.days > 30 * 5:
|
||||
return "%d months" % (dur.days / 30)
|
||||
else:
|
||||
return "%d days" % (dur.days)
|
||||
else:
|
||||
if dur.seconds > 60 * 60 * 2:
|
||||
return "%d hours" % (dur.seconds / 60 / 60)
|
||||
elif dur.seconds > 60 * 5:
|
||||
return "%d minutes" % (dur.seconds / 60)
|
||||
else:
|
||||
return "%d seconds" % (dur.seconds)
|
||||
|
||||
|
||||
def partition_by_extension(fileinfo):
|
||||
pd = dict()
|
||||
meta = dict()
|
||||
total_filecount = 0
|
||||
total_extfilecount = 0
|
||||
for path, fi in fileinfo.items():
|
||||
total_filecount += 1
|
||||
root, ext = splitext(path)
|
||||
if not ext:
|
||||
continue
|
||||
total_extfilecount += 1
|
||||
if not ext in pd:
|
||||
pd[ext] = dict()
|
||||
meta[ext] = dict(filecount=0)
|
||||
pd[ext][path] = fi
|
||||
meta[ext]["filecount"] += 1
|
||||
return pd, meta, total_filecount, total_extfilecount
|
||||
|
||||
|
||||
def print_top_committers(authorinfo, total_commits):
|
||||
authors = sorted(authorinfo.items(), key=lambda x: x[1][2], reverse=True)
|
||||
total_authors = len(authors)
|
||||
committed = 0
|
||||
print("Top Committers (of %d authors):" % (total_authors))
|
||||
for author, info in authors:
|
||||
first, last, count = info
|
||||
readable_last = last.strftime("%Y-%m-%d")
|
||||
if count == 1:
|
||||
print("%-20s 1 commit on %s" % (author, readable_last))
|
||||
else:
|
||||
duration = readable_duration(last - first)
|
||||
print(
|
||||
"%-20s %4d commits during %s until %s"
|
||||
% (author, count, duration, readable_last)
|
||||
)
|
||||
committed += count
|
||||
if committed > total_commits * 0.8:
|
||||
break
|
||||
print(
|
||||
" together these authors have 80+%% of the commits (%d/%d)"
|
||||
% (committed, total_commits)
|
||||
)
|
||||
|
||||
|
||||
def print_important_files(fileinfo):
|
||||
files = list(fileinfo.values())
|
||||
files.sort(key=lambda x: x["commits"])
|
||||
print("Files with most commits:")
|
||||
for x in files[-5:]:
|
||||
readable_last = x["lastc"].strftime("%Y-%m-%d")
|
||||
duration = readable_duration(x["lastc"] - x["firstc"])
|
||||
print(
|
||||
"%4d commits: %-20s during %s until %s"
|
||||
% (x["commits"], x["path"], duration, readable_last)
|
||||
)
|
||||
print()
|
||||
files.sort(key=lambda x: len(x["authors"]))
|
||||
print("Files with most authors:")
|
||||
for x in files[-5:]:
|
||||
print("%2d authors: %-20s" % (len(x["authors"]), x["path"]))
|
||||
|
||||
|
||||
def print_extension_info(fileinfo):
|
||||
pfileinfo, extinfo, total_filecount, total_extfilecount = partition_by_extension(
|
||||
fileinfo
|
||||
)
|
||||
pf = [(e, i) for e, i in pfileinfo.items()]
|
||||
pf.sort(key=lambda x: extinfo[x[0]]["filecount"], reverse=True)
|
||||
print("By file extension:")
|
||||
fc = 0
|
||||
for ext, info in pf:
|
||||
c = extinfo[ext]["filecount"]
|
||||
print("%5s: %d files" % (ext, extinfo[ext]["filecount"]))
|
||||
fc += c
|
||||
if fc > total_filecount * 0.8:
|
||||
break
|
||||
print(" together these make up 80+%% of the files (%d/%d)" % (fc, total_filecount))
|
||||
|
||||
|
||||
authorinfo, fileinfo, total_commits = read_log_data()
|
||||
print_top_committers(authorinfo, total_commits)
|
||||
print()
|
||||
print_important_files(fileinfo)
|
||||
print()
|
||||
print_extension_info(fileinfo)
|
10
dot_scripts/godeps.sh
Executable file
10
dot_scripts/godeps.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
go get -u -v github.com/jessfraz/dockfmt
|
||||
go get -u -v github.com/dmlittle/scenery
|
||||
go get -u -v github.com/camptocamp/terraboard
|
||||
go get -u -v github.com/juliensalinas/torrengo
|
||||
go get -u -v github.com/asciimoo/wuzz # Interactive CLI tool for HTTP inspection
|
||||
go get -u -v github.com/keilerkonzept/terraform-module-versions # detect new terraform modules versions
|
||||
go get -u -v github.com/talos-systems/conform
|
||||
go get -u -v github.com/ciehanski/libgen-cli
|
||||
go get -u -v github.com/ajbosco/reads/cmd/reads
|
3
dot_scripts/install_awsls.sh
Executable file
3
dot_scripts/install_awsls.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
# Install awsls
|
||||
BINDIR="/usr/local/bin" curl -sSfL https://raw.githubusercontent.com/jckuester/awsls/master/install.sh | sh -s v0.1.2
|
5
dot_scripts/install_bach.sh
Executable file
5
dot_scripts/install_bach.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
echo "Installing Bach (Bash Testing Framework)"
|
||||
|
||||
sudo curl -L https://raw.githubusercontent.com/bach-sh/bach/master/bach.sh -o /usr/local/bin/bach
|
||||
chmod +x "$_"
|
6
dot_scripts/install_bashtop.sh
Executable file
6
dot_scripts/install_bashtop.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# Install bashtop (until brew manages it)
|
||||
git clone https://github.com/aristocratos/bashtop.git ~/Code/bashtop
|
||||
cd ~/Code/bashtop || exit
|
||||
sudo make install
|
||||
cd "$HOME" || exit
|
17
dot_scripts/install_baton.sh
Executable file
17
dot_scripts/install_baton.sh
Executable file
@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
# Install baton (CLI to manage Spotify playback) https://github.com/joshuathompson/baton
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo '(Mac OS X) Installing baton (Spotify CLI)'
|
||||
curl -sSL https://github.com/joshuathompson/baton/releases/download/0.1.7/baton-0.1.7-darwin-amd64 -o /usr/local/bin/baton && chmod +x /usr/local/bin/baton
|
||||
;;
|
||||
|
||||
Linux)
|
||||
echo '(Linux) Installing baton (Spotify CLI)'
|
||||
curl -sSL https://github.com/joshuathompson/baton/releases/download/0.1.7/baton-0.1.7-linux-amd64 -o /usr/local/bin/baton && chmod +x /usr/local/bin/baton
|
||||
;;
|
||||
*)
|
||||
echo 'Non supported OS : Installation aborted for baton (Spotify CLI)'
|
||||
exit
|
||||
;;
|
||||
esac
|
4
dot_scripts/install_broot.sh
Executable file
4
dot_scripts/install_broot.sh
Executable file
@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
echo "Installing Broot"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_config/broot/conf.toml" "$HOME/.config/broot/conf.toml"
|
||||
broot --install
|
12
dot_scripts/install_homebrew.sh
Executable file
12
dot_scripts/install_homebrew.sh
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Install HomeBrew
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) installing homebrew"
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
# Prevent `Error: Your Homebrew is outdated. Please run `brew update`.`
|
||||
echo "Updating Homebrew"
|
||||
brew update
|
||||
;;
|
||||
esac
|
11
dot_scripts/install_linux_packages.sh
Executable file
11
dot_scripts/install_linux_packages.sh
Executable file
@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Install missing package (Linux)
|
||||
case "$(uname -s)" in
|
||||
Linux)
|
||||
echo "(Linux) Installing Development Tools"
|
||||
yum install sudo -y
|
||||
sudo yum groupinstall 'Development Tools' -y
|
||||
sudo yum install git which zip unzip ruby curl file docker gcc make libxcrypt-compat vim-enhanced -y
|
||||
;;
|
||||
esac
|
9
dot_scripts/install_linux_user_apps.sh
Executable file
9
dot_scripts/install_linux_user_apps.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
# Install dependencies (apps, fonts, ...) for CentOS
|
||||
case "$(uname -s)" in
|
||||
Linux)
|
||||
echo "(CentOS) Installing stuff (apps, ...)"
|
||||
chmod +x ~/Code/dotfiles/centos.sh
|
||||
~/Code/dotfiles/centos.sh
|
||||
;;
|
||||
esac
|
10
dot_scripts/install_macpackages.sh
Executable file
10
dot_scripts/install_macpackages.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Install dependencies (apps, fonts, ...) with Brew
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) Brew installing stuff (apps, fonts, ...)"
|
||||
ln -snf ~/Code/dotfiles/Brewfile ~/Brewfile
|
||||
brew bundle
|
||||
;;
|
||||
esac
|
5
dot_scripts/install_weavescope.sh
Executable file
5
dot_scripts/install_weavescope.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Weave Scope is a visualization and monitoring tool for Docker and Kubernetes.
|
||||
sudo curl -L git.io/scope -o /usr/local/bin/scope
|
||||
sudo chmod a+x /usr/local/bin/scope
|
||||
#scope launch
|
3
dot_scripts/installed.sh
Normal file → Executable file
3
dot_scripts/installed.sh
Normal file → Executable file
@ -1,2 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
npm list -g --depth 0
|
||||
source $HOME/Code/dotfiles/dot_zsh_aliases
|
||||
npmlist
|
||||
|
9
dot_scripts/load_macos_defaults.sh
Executable file
9
dot_scripts/load_macos_defaults.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
# OSX Defaults
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) Loading preferences"
|
||||
sudo sh "$HOME/.macos"
|
||||
ln -snf "$HOME/Code/dotfiles/com.googlecode.iterm2.plist" "$HOME/com.googlecode.iterm2.plist"
|
||||
;;
|
||||
esac
|
24
dot_scripts/mail.tpl
Normal file
24
dot_scripts/mail.tpl
Normal file
@ -0,0 +1,24 @@
|
||||
From: "#FROM_NAME" <#FROM_MAIL>
|
||||
To: "#TO_NAME" <#TO_MAIL>
|
||||
Subject: Convert
|
||||
MIME-Version: 1.0
|
||||
Content-Type: multipart/mixed; boundary="MULTIPART-MIXED-BOUNDARY"
|
||||
|
||||
--MULTIPART-MIXED-BOUNDARY
|
||||
Content-Type: multipart/alternative; boundary="MULTIPART-ALTERNATE-BOUNDARY"
|
||||
|
||||
--MULTIPART-ALTERNATE-BOUNDARY
|
||||
Content-Type: text/plain; charset="UTF-8"
|
||||
|
||||
Hello #TO_NAME
|
||||
|
||||
--MULTIPART-ALTERNATE-BOUNDARY
|
||||
Content-Type: text/html; charset="UTF-8"
|
||||
Content-Transfer-Encoding: quoted-printable
|
||||
<div dir=3D"ltr">Hello #TO_NAME</div>
|
||||
|
||||
--MULTIPART-ALTERNATE-BOUNDARY--
|
||||
--MULTIPART-MIXED-BOUNDARY
|
||||
Content-Type: application/octet-stream; name="#ATTACHMENT_NAME"
|
||||
Content-Disposition: attachment; filename="#ATTACHMENT_NAME"
|
||||
Content-Transfer-Encoding: base64
|
15
dot_scripts/npmdeps.sh
Executable file
15
dot_scripts/npmdeps.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Install pa11y tool for local webpage accessibility analysis
|
||||
echo "Installing pa11y tool for local webpage accessibility analysis"
|
||||
npm install -g pa11y
|
||||
echo "Installing moro, a productivity CLI tool"
|
||||
npm install -g moro
|
||||
echo "Install wiki CLI tool"
|
||||
npm install -g wikit
|
||||
echo "Install Write-good CLI spell checker"
|
||||
npm install -g write-good
|
||||
echo "Install Alex a text linter"
|
||||
npm install -g alex
|
||||
|
||||
cd "$HOME" || exit
|
10
dot_scripts/ohmyzshdeps.sh
Executable file
10
dot_scripts/ohmyzshdeps.sh
Executable file
@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
# Install Oh My Zsh and some cool dependencies
|
||||
echo "Installing Oh My Zsh + customizing themes and plugins"
|
||||
echo 'source /usr/local/opt/powerlevel10k/powerlevel10k.zsh-theme' ~/.zshrc >>!
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
|
||||
git clone https://github.com/AlexisBRENON/oh-my-zsh-reminder "$ZSH_CUSTOM/plugins/reminder"
|
||||
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$ZSH_CUSTOM/plugins/zsh-syntax-highlighting"
|
||||
git clone https://github.com/zsh-users/zsh-autosuggestions "$ZSH_CUSTOM/plugins/zsh-autosuggestions"
|
||||
ln -snf ~/Code/dotfiles/dot_zshrc ~/.zshrc
|
||||
ln -snf ~/Code/dotfiles/dot_zshrc.pre-oh-my-zsh ~/.zshrc.pre-oh-my-zsh
|
31
dot_scripts/pre-commit-verify-committer.sh
Executable file
31
dot_scripts/pre-commit-verify-committer.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# An example hook script to verify what is about to be committed.
|
||||
# Called by "git commit" with no arguments. The hook should
|
||||
# exit with non-zero status after issuing an appropriate message if
|
||||
# it wants to stop the commit.
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
source "$HOME/.zsh_functions"
|
||||
source "$HOME/.scripts/secrets.sh"
|
||||
|
||||
REMOTE=$(git config --get remote.origin.url)
|
||||
USERNAME=$(git config --get user.name)
|
||||
EMAIL=$(git config --get user.email)
|
||||
checkEmailUsername() {
|
||||
if [[ "$EMAIL" != "$1" ]]; then
|
||||
warning "Invalid email: $EMAIL for remote $REMOTE"
|
||||
arrow "fix this by running :\ngit config user.email $1"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$USERNAME" != "$2" ]]; then
|
||||
warning "Invalid username: $USERNAME for remote $REMOTE"
|
||||
arrow "fix this by running :\ngit config user.name \"$2\""
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
if [[ $REMOTE == *"$COMPANY_NAME"* ]] && [[ "$REMOTE" != *"dotfiles"* ]]; then
|
||||
checkEmailUsername "$GIT_PRO_EMAIL" "$GIT_PRO_USER"
|
||||
else
|
||||
checkEmailUsername "$GIT_PERSONAL_EMAIL" "$GIT_PERSONAL_USER"
|
||||
fi
|
31
dot_scripts/pythondeps.sh
Executable file
31
dot_scripts/pythondeps.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
# Install pip and pipenv
|
||||
echo "Installing pip and pipenv"
|
||||
sudo easy_install pip
|
||||
sudo pip install --upgrade pip
|
||||
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
|
||||
sudo python3 get-pip.py
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) Updating PATH for loading pip user installed packages"
|
||||
ln -snf /usr/local/lib/python3.9/site-packages/pip /usr/local/bin/pip21
|
||||
ln -snf /usr/local/lib/python3.9/site-packages/pip /usr/local/bin/pip3
|
||||
export PATH="$PATH:/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/bin/:/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/opt/python/bin/"
|
||||
;;
|
||||
esac
|
||||
if ! test -f "/usr/bin/python2" || ! command -v python2 &>/dev/null; then
|
||||
sudo ln -snf /usr/bin/python /usr/bin/python2
|
||||
fi
|
||||
|
||||
echo "Upgrading pip"
|
||||
sudo pip install --upgrade pip
|
||||
echo "Pip installing stuff"
|
||||
pip install -r requirements.txt
|
||||
|
||||
# was used for some slack CLI in python... https://pypi.org/project/slack-cli/
|
||||
# pip3 install pipenv
|
||||
# pyenv install 3.6.0
|
||||
|
||||
git clone https://github.com/sherlock-project/sherlock.git ~/Code/sherlock
|
||||
cd sherlock || exit
|
||||
python3 -m pip install -r requirements.txt
|
@ -1,13 +1,19 @@
|
||||
#!/usr/bin/env zsh
|
||||
export SDKMAN_DIR="$HOME/.sdkman"
|
||||
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||
|
||||
# shellcheck disable
|
||||
|
||||
# Reload
|
||||
echo "Reloading config"
|
||||
|
||||
chmod +x ~/.scripts/*.sh
|
||||
source ~/.zshrc
|
||||
sdk use java 8.0.222-zulu
|
||||
|
||||
# Homebrew reloading stuff
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
Darwin)
|
||||
echo "(Mac OS X) Homebrew reloading stuff"
|
||||
brew bundle
|
||||
;;
|
||||
@ -15,7 +21,7 @@ esac
|
||||
|
||||
# OSX Defaults
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
Darwin)
|
||||
sudo sh .macos
|
||||
;;
|
||||
esac
|
||||
|
9
dot_scripts/rubydeps.sh
Executable file
9
dot_scripts/rubydeps.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
echo 'Installing ruby'
|
||||
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
|
||||
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
|
||||
curl -L get.rvm.io | bash -s stable
|
||||
source /etc/profile.d/rvm.sh
|
||||
rvm reload
|
||||
rvm requirements run
|
||||
rvm install 2.3.7
|
11
dot_scripts/rustdeps.sh
Executable file
11
dot_scripts/rustdeps.sh
Executable file
@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
# Use rustup to install the Rust compiler (rustc) and the Rust package manager (cargo).
|
||||
echo "Installing Rust compiler and package manager"
|
||||
rustup-init -y
|
||||
rustup component add rustfmt
|
||||
|
||||
git clone git@github.com:njaremko/podcast.git "$HOME/Code/podcast"
|
||||
cd "$HOME/Code/podcast" || exit
|
||||
cargo install --path=.
|
||||
mkdir "$ZSH_CUSTOM/plugins/podcast" && podcast completion zsh >"$ZSH_CUSTOM/plugins/podcast/_podcast"
|
||||
cd "$HOME" || exit
|
20
dot_scripts/sdkmandeps.sh
Executable file
20
dot_scripts/sdkmandeps.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Use SDKMan to install development tools
|
||||
echo "Installing SDKMan as development tools manager"
|
||||
curl -s "https://get.sdkman.io" | bash
|
||||
|
||||
# Install missing package (Linux)
|
||||
case "$(uname -s)" in
|
||||
Linux)
|
||||
source "/root/.sdkman/bin/sdkman-init.sh"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "SDKMan installing development tools"
|
||||
sdk install java
|
||||
sdk install gradle
|
||||
sdk install java 8.0.222-zulu
|
||||
sdk install kotlin
|
||||
echo "SDKMan updating"
|
||||
sdk selfupdate
|
33
dot_scripts/sendmail.sh
Executable file
33
dot_scripts/sendmail.sh
Executable file
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source "$HOME/.scripts/secrets.sh"
|
||||
|
||||
function file_to_mail() {
|
||||
local source_file="$1"
|
||||
local attachment_name=$(basename "$1")
|
||||
local target_file="$source_file-encoded"
|
||||
base64 "$source_file" >"$target_file"
|
||||
local target_file_content
|
||||
|
||||
target_file_content=$(\cat "$target_file")
|
||||
|
||||
local mail_template="$HOME/Code/dotfiles/dot_scripts/mail.tpl"
|
||||
|
||||
local mail_from="$PRINCIPAL_ACCOUNT_EMAIL"
|
||||
local mail_to=${2:-"$mail_from"}
|
||||
local name_from="$PRINCIPAL_ACCOUNT_FULLNAME"
|
||||
local name_to="$name_from"
|
||||
|
||||
\cat "$mail_template" |
|
||||
sed "s/#FROM_NAME/$name_from/g" |
|
||||
sed "s/#FROM_MAIL/$mail_from/g" |
|
||||
sed "s/#TO_NAME/$name_to/g" |
|
||||
sed "s/#TO_MAIL/$mail_to/g" |
|
||||
sed "s/#ATTACHMENT_NAME/$attachment_name/g" >/tmp/mailwithattachement.txt
|
||||
# sed "s/#ATTACHMENT_CONTENT/$target_file_content/g" >/tmp/mailwithattachement.txt
|
||||
# sed "s/#ATTACHMENT_CONTENT/$target_file_content/g" >/tmp/mailwithattachement.txt
|
||||
echo "\n$target_file_content\n" >>/tmp/mailwithattachement.txt
|
||||
echo "\n--MULTIPART-MIXED-BOUNDARY--" >>/tmp/mailwithattachement.txt
|
||||
|
||||
curl -v --ssl-reqd --url 'smtps://smtp.gmail.com:465' --user "$GMAIL_APP_USER:$GMAIL_APP_PASSWORD" --mail-from "$mail_from" --mail-rcpt "$mail_to" --upload-file /tmp/mailwithattachement.txt
|
||||
}
|
50
dot_scripts/suggest_readable_parameters.sh
Executable file
50
dot_scripts/suggest_readable_parameters.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
function suggest_readable_parameters() {
|
||||
while read -r command_name; do
|
||||
arrow "searching for usage of $command_name"
|
||||
|
||||
if [[ $(top_commands_full "\b$command_name\b" 50 &>/dev/null | wc -l | trim) -gt 30 ]]; then
|
||||
# arrow "$command_name appears frequently in your history"
|
||||
|
||||
# FIXME : skip false positives like file -> "$file"
|
||||
# FIXME : skip false positives like parameter found "-" in sort --key 4 --numeric-sort --reverse
|
||||
# TODO : bring support for shell functions aliased to anything providing a real manual
|
||||
# e.g : checkov should be taken into account but github should not
|
||||
# TODO : bring support for backslashed functions (e.g : \egrep)
|
||||
# FIXME : alex --quiet is not detected
|
||||
# TODO : support research of command usage when parameters of command appear after command arguments, like : path_swilgt=$(find /usr/local/Cellar/logtalk -name "*swilgt.sh"dev/null)
|
||||
# TODO : support sub commands like in git ls-tree where ls-tree is a subcommand with its own manual : git ls-tree -r --long; or npm install -g <package> where -g is a valid option for npm install
|
||||
|
||||
if [[ $(LC_ALL=C type "$command_name") != *"alias for"* && $(LC_ALL=C type "$command_name") != *"is a shell function"* ]] && [[ $($command_name --help &>/dev/null) -eq 0 || $(info $command_name &>/dev/null) -eq 0 ]]; then
|
||||
while read -r command_usage; do
|
||||
arrow "searching for parameters in: $command_usage "
|
||||
echo "$command_usage" | \grep -Eo "\b$command_name\b (\-[a-zA-Z0-9]*)" H -1 | tr -d '-' | awk -v COUNT=1 'NF=COUNT' 1>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
while read -r command_parameters; do
|
||||
success "($command_name) -> found parameters : $command_parameters"
|
||||
while read -r parameter_name; do
|
||||
echo "($command_name $command_parameters) -> check more readable alternative to $parameter_name"
|
||||
$command_name --help 2>/dev/null | \egrep -wo "(\-$parameter_name), --.*" 1>/dev/null # | \grep "\-$parameter_name"
|
||||
local provides_help=$?
|
||||
info $command_name 2>/dev/null | \egrep -wo "(\-$parameter_name), --.*" 1>/dev/null # | \grep "\-$parameter_name"
|
||||
local provides_manual=$?
|
||||
|
||||
if [ "$provides_help" -eq 0 ]; then
|
||||
success "($command_name -$parameter_name) -> found better alternative to $parameter_name in $command_usage:"
|
||||
$command_name --help | \egrep -wo "(\-$parameter_name), --.*"
|
||||
fi
|
||||
if [ "$provides_manual" -eq 0 ]; then
|
||||
success "($command_name -$parameter_name) -> found better alternative to $parameter_name in $command_usage:"
|
||||
info $command_name 2>/dev/null | \egrep -wo "(\-$parameter_name), --.*"
|
||||
fi
|
||||
done < <(echo "$command_parameters" H -1 | tr -d '-' | fold -w 1)
|
||||
done < <(echo "$command_usage" | \grep -Po "(?<=\b$command_name\b )(\-[a-zA-Z0-9]*)" | sort -u)
|
||||
fi
|
||||
done < <(grep -H -n "\b$command_name\b" "$@")
|
||||
else
|
||||
#error "$command_name is not a valid command or does not provide a manual"
|
||||
true
|
||||
fi
|
||||
fi
|
||||
done < <(top_commands "" 1000 | awk '{print $4}' G "^[\\\\]?[a-z]+$" | sort -u)
|
||||
}
|
59
dot_scripts/symbolic_links.sh
Executable file
59
dot_scripts/symbolic_links.sh
Executable file
@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env bash
|
||||
echo "Creating symbolic links"
|
||||
|
||||
ln -snf "$HOME/Code/dotfiles/dot_profile" "$HOME/.profile"
|
||||
ln -snf "$HOME/.local/share/chezmoi/" "$HOME/dotfiles"
|
||||
ln -snf "$HOME/Code/dotfiles/Gemfile" "$HOME/Gemfile"
|
||||
ln -snf "$HOME/Code/dotfiles/README.md" "$HOME/README.md"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_bash_profile" "$HOME/.bash_profile"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_gitconfig" "$HOME/.gitconfig"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_macos" "$HOME/.macos"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_scripts" "$HOME/.scripts"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_scripts/checkci.sh" /usr/local/bin/checkci
|
||||
ln -snf "$HOME/Code/dotfiles/dot_scripts/git-overview.py" /usr/local/bin/git-overview # via https://github.com/qznc/dot/blob/master/bin/git-overview
|
||||
ln -snf "$HOME/Code/dotfiles/dot_scripts/pre-commit-verify-committer.sh" /usr/local/bin/pre-commit-verify-committer
|
||||
ln -snf "$HOME/Code/dotfiles/dot_vimrc" "$HOME/.vimrc"
|
||||
# custom linters
|
||||
ln -snf "$HOME/Code/dotfiles/dot_vim/ale_linters" "$HOME/.vim/ale_linters"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_aliases" "$HOME/.aliases"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_zsh_aliases" "$HOME/.zsh_aliases"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_zsh_functions" "$HOME/.zsh_functions"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_zshrc" "$HOME/.zshrc"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_zshrc.pre-oh-my-zsh" "$HOME/.zshrc.pre-oh-my-zsh"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_ssh/config" "$HOME/.ssh/config"
|
||||
ln -snf "$HOME/Code/dotfiles/requirements.txt" "$HOME/requirements.txt"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_surfraw.conf" "$HOME/.surfraw.conf"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_3llo/config.sh" "$HOME/.3llo_config"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_ansiweatherrc" "$HOME/.ansiweatherrc"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_p10k.zsh" "$HOME/.p10k.zsh"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_git-template" "$HOME/.git-template"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_newsboat" "$HOME/.newsboat"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_config/Code" "$HOME/.config/Code"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_config/neofetch" "$HOME/.config/neofetch"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_config/gh" "$HOME/.config/gh"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_config/htop" "$HOME/.config/htop"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_config/bashtop" "$HOME/.config/bashtop"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_config/wtf" "$HOME/.config/wtf"
|
||||
ln -snf "$HOME/Code/dotfiles/private_dot_config/yamllint" "$HOME/.config/yamllint"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_git-template/.pre-commit-config.yaml" "$HOME/dotfiles/.pre-commit-config.yaml"
|
||||
|
||||
# Aspell symbolic links
|
||||
ln -snf "$HOME/Code/dotfiles/dot_aspell.en.prepl" "$HOME/.aspell.en.prepl"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_aspell.en.pws" "$HOME/.aspell.en.pws"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_aspell.fr.prepl" "$HOME/.aspell.fr.prepl"
|
||||
ln -snf "$HOME/Code/dotfiles/dot_aspell.fr.pws" "$HOME/.aspell.fr.pws"
|
||||
|
||||
# Vim spellcheck will be based on aspell :-)
|
||||
ln -snf "$HOME/Code/dotfiles/dot_aspell.en.pws" "$HOME/.vim/spell/en.utf-8.add"
|
||||
|
||||
# Other symbolic links + Install Docker Desktop for Mac
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
echo "(Mac OS X) Adding symbolic links"
|
||||
ln -snf "$HOME/.config/Code/User/settings.json" "$HOME/Library/Application Support/Code/User/settings.json"
|
||||
ln -snf "$HOME/Library/Mobile Documents/com~apple~CloudDocs/Mackup/Library/Application Support/Code/User/snippets" "$HOME/Library/Application Support/Code/User/snippets"
|
||||
ln -snf "$HOME/Library/Mobile Documents/com~apple~CloudDocs/Mackup/.mackup.cfg" "$HOME/.mackup.cfg"
|
||||
echo "(Mac OS X) Installing Docker"
|
||||
~/.scripts/install_docker_for_mac.sh
|
||||
;;
|
||||
esac
|
@ -3,6 +3,9 @@ export SDKMAN_DIR="$HOME/.sdkman"
|
||||
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||
sdk selfupdate
|
||||
|
||||
# Upgrade
|
||||
echo "Upgrading apps"
|
||||
|
||||
# Upgrading HomeBrew stuff
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
@ -16,11 +19,13 @@ esac
|
||||
bundle update --all
|
||||
#gem update --system
|
||||
#gem update asciidoctor-pdf t
|
||||
zsh ~/.oh-my-zsh/tools/upgrade.sh
|
||||
zsh ~/.oh-my-zsh/tools/upgrade.sh || upgrade_oh_my_zsh
|
||||
sudo pip install --upgrade pip 2>/dev/null
|
||||
sudo pip3 install --upgrade pip 2>/dev/null
|
||||
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
|
||||
pip list --outdated --format=freeze G -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
|
||||
pip freeze >~/requirements.txt
|
||||
# Update VIM plugins installed via Vundle https://github.com/VundleVim/Vundle.vim
|
||||
vim +PluginUpdate +qall >/dev/null
|
||||
rustup-update
|
||||
rustup update
|
||||
npm update -g moro
|
||||
pre-commit autoupdate
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
vim --version | head -1
|
||||
vim --version H -1
|
||||
rustc --version
|
||||
npm --version
|
||||
bats --version
|
||||
@ -19,12 +19,12 @@ python3 --version
|
||||
docker --version
|
||||
openssl version
|
||||
git --version
|
||||
atlas-version | grep Version | head -n 1
|
||||
atlas-version G Version H -n 1
|
||||
|
||||
export SDKMAN_DIR="$HOME/.sdkman"
|
||||
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||
sdk --version
|
||||
tac --version | head -n 1
|
||||
tac --version H -n 1
|
||||
k9s version
|
||||
tfsec --version
|
||||
aws-iam-authenticator version
|
||||
|
11
dot_scripts/vimdeps.sh
Executable file
11
dot_scripts/vimdeps.sh
Executable file
@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
echo "Installing Vundle + VIM Plugins"
|
||||
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
||||
vim +PluginInstall +qall >/dev/null
|
||||
#https://github.com/ycm-core/YouCompleteMe/blob/master/README.md#installation
|
||||
cd "$HOME/.vim/bundle/YouCompleteMe" || exit
|
||||
./install.py --all
|
||||
mkdir -p "$HOME/.vim/spell"
|
||||
|
||||
cd "$HOME" || exit
|
||||
git clone https://github.com/dbeniamine/cheat.sh-vim.git ~/.vim/cheat.sh-vim
|
50
dot_vimrc
50
dot_vimrc
@ -45,6 +45,12 @@ Plugin 'tpope/vim-fugitive'
|
||||
Plugin 'scrooloose/nerdtree'
|
||||
" A plugin of NERDTree showing git status
|
||||
Plugin 'Xuyuanp/nerdtree-git-plugin'
|
||||
" Vim plugin for intensely nerdy commenting powers
|
||||
" In order to use it for instance, for commenting a block of text... do as :
|
||||
" - Select several lines (using <V>)
|
||||
" - Press <SPACE> then <cs>
|
||||
Plugin 'preservim/nerdcommenter'
|
||||
|
||||
" A Vim plugin which shows a git diff in the gutter (sign column) and stages/undoes hunks and partial hunks.
|
||||
Plugin 'airblade/vim-gitgutter'
|
||||
" Jenkinsfile DSL Vim Syntax
|
||||
@ -57,6 +63,14 @@ Plugin 'mbbill/undotree'
|
||||
Plugin 'farmergreg/vim-lastplace'
|
||||
" Add icons to your plugins
|
||||
Plugin 'ryanoasis/vim-devicons'
|
||||
" Prettier to auto format some files
|
||||
Plugin 'mitermayer/vim-prettier'
|
||||
" Enable OpenAI based text completion
|
||||
Plugin 'jessfraz/openai.vim'
|
||||
" TabNine for code completion
|
||||
Plugin 'zxqfl/tabnine-vim'
|
||||
" read man pages from vim, e.g : SuperMan ls. inspired by https://catonmat.net/read-man-pages-with-vim
|
||||
Plugin 'jez/vim-superman'
|
||||
|
||||
" All of your Plugins must be added before the following line
|
||||
call vundle#end()
|
||||
@ -97,12 +111,28 @@ let g:ale_use_global_executables = 1
|
||||
let g:ale_fix_on_save = 1
|
||||
let g:ale_completion_enabled = 1
|
||||
let g:ale_open_list = 1
|
||||
let g:ale_fixers = {
|
||||
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||
\ 'python': ['black'],
|
||||
\ 'rust': ['rustfmt'],
|
||||
\ 'Jenkinsfile': ['checkci'],
|
||||
\}
|
||||
"\ 'yaml': ['prettier'],
|
||||
|
||||
"let g:ale_fixers = {
|
||||
"\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||
"\ 'python': ['black'],
|
||||
"\ 'rust': ['rustfmt'],
|
||||
"\ 'Jenkinsfile': ['checkci'],
|
||||
"\ 'sh' : ['shfmt'],
|
||||
"\ 'zsh' : ['shfmt'],
|
||||
"\}
|
||||
|
||||
let g:ale_linters = {'zsh': ['shellcheck'], 'text': ['writegood', 'proselint', 'alex']}
|
||||
|
||||
" when running at every change you may want to disable quickfix
|
||||
let g:prettier#quickfix_enabled = 0
|
||||
let g:prettier#quickfix_auto_focus = 1
|
||||
let g:prettier#config#print_width = '30'
|
||||
let g:prettier#exec_cmd_path = "/usr/local/bin/prettier"
|
||||
let g:prettier#autoformat = 0
|
||||
let g:prettier#autoformat_require_pragma = 0
|
||||
|
||||
"autocmd TextChanged,InsertLeave *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync
|
||||
|
||||
" Enable syntax highlighting
|
||||
syntax on
|
||||
@ -150,12 +180,16 @@ set tabstop=4
|
||||
set shiftwidth=4
|
||||
" On pressing tab, insert 4 spaces
|
||||
set expandtab
|
||||
" Enable spell checking
|
||||
set spell
|
||||
|
||||
" Default colors for highlighting search result
|
||||
hi Search ctermfg=White
|
||||
hi Search ctermbg=DarkMagenta
|
||||
|
||||
" test cheat.sh integration with VIM
|
||||
" In any source file, type a query "e.g : how to append ... in python" then
|
||||
" exit insert mode, and press <SPACE> then <KK>
|
||||
let mapleader=" "
|
||||
|
||||
" map a specific key or shortcut to open NERDTree
|
||||
@ -173,6 +207,9 @@ let g:syntastic_javascript_checkers = [ 'jshint' ]
|
||||
let g:syntastic_ocaml_checkers = ['merlin']
|
||||
let g:syntastic_python_checkers = ['pylint']
|
||||
let g:syntastic_shell_checkers = ['shellcheck']
|
||||
let g:syntastic_yaml_checkers = ['yamllint']
|
||||
let g:syntastic_vim_checkers = ['vint']
|
||||
let g:syntastic_zsh_checkers = ['shellcheck']
|
||||
|
||||
set statusline+=%#warningmsg#
|
||||
set statusline+=%{SyntasticStatuslineFlag()}
|
||||
@ -183,3 +220,4 @@ let g:syntastic_auto_loc_list = 1
|
||||
let g:syntastic_check_on_open = 1
|
||||
let g:syntastic_check_on_wq = 0
|
||||
au BufNewFile,BufRead Jenkinsfile setf groovy
|
||||
au BufRead,BufNewFile *.sh setfiletype sh
|
||||
|
189
dot_zsh_aliases
189
dot_zsh_aliases
@ -1,56 +1,30 @@
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||
# alias zshconfig="mate $HOME/.zshrc"
|
||||
# alias ohmyzsh="mate $HOME/.oh-my-zsh"
|
||||
#
|
||||
|
||||
# Git, dotfiles, ripgrep, Node.JS
|
||||
alias gcls='git clone --depth 1 --recurse-submodules'
|
||||
alias cm='chezmoi'
|
||||
alias grep='rg'
|
||||
alias npmlist='npm list -g --depth 0'
|
||||
alias lg='lazygit'
|
||||
alias lzd='lazydocker'
|
||||
alias neworigin='setorigin'
|
||||
alias origin='setorigin'
|
||||
alias gpar='gitpushallremote'
|
||||
chmod +x $HOME/.aliases/*
|
||||
|
||||
# Jira
|
||||
alias jirasearch='issues'
|
||||
alias cicdlist="jira issue jql \"project = 'CICD' AND resolution = Unresolved\""
|
||||
alias backlogs="jira issue jql \"status = New AND project IN (CICD) AND Created > -2w ORDER BY Priority DESC\""
|
||||
alias bakclogs='backlogs'
|
||||
alias support="jira issue jql \"project in (CICD) AND (Created > -2w AND resolution = Unresolved AND (type = 'Engineering Incident' AND status not in ('Waiting for external information') OR type IN ('Engineering Request', 'Task', 'User Story') AND status in ('New', 'To be picked next')) OR resolution != Unresolved AND status = 'In Progress') ORDER BY key DESC\""
|
||||
alias guardian="support"
|
||||
alias lastissues='jira issue jql "project IN (CICD) AND Created > -2w ORDER BY Created DESC, Priority DESC"'
|
||||
alias workingon="jira issue jql \"assignee = currentUser() AND resolution = Unresolved AND status not in ('In Review', 'Done', 'In Testing', 'Waiting For Build') OR QA = currentUser() AND status = 'In Testing' ORDER BY updated DESC, priority DESC\""
|
||||
alias toreview='jira issue jql "project in (CICD) AND Updated > -2w AND issue.property[development].openprs > 0 ORDER BY Created DESC, Priority ASC"'
|
||||
alias newissues="jira issue jql \"project IN (CICD) AND Created > -2w AND resolution = Unresolved AND status not in ('In Progress') ORDER BY Created DESC, Priority DESC\""
|
||||
alias n='newissues'
|
||||
alias backlog=cicdlist
|
||||
alias bakclog='backlog'
|
||||
alias b='backlog'
|
||||
alias mybacklog="jira issue ls && asana"
|
||||
alias mb='mybacklog'
|
||||
alias myissues='mb'
|
||||
alias me='mb'
|
||||
alias j='jira issue open'
|
||||
# Git
|
||||
source "$HOME/.aliases/git.sh"
|
||||
|
||||
# Docker
|
||||
alias lzd='lazydocker'
|
||||
|
||||
# PM : Jira & trello & asana & moro
|
||||
source "$HOME/.aliases/backlog.sh"
|
||||
|
||||
# News
|
||||
alias hack='hacker'
|
||||
alias crypto='curl rate.sx'
|
||||
source "$HOME/.aliases/news.sh"
|
||||
|
||||
# Twitter
|
||||
alias twitter='\t'
|
||||
alias tsearch='twitter search all'
|
||||
alias tweets='tsearch --long -a -d'
|
||||
alias tsearchfav='twitter search favorites'
|
||||
alias tsearchtimeline='twitter search timeline'
|
||||
source "$HOME/.aliases/twitter.sh"
|
||||
|
||||
# RSS
|
||||
source "$HOME/.aliases/rss.sh"
|
||||
|
||||
# Search
|
||||
alias ddg='ddgr'
|
||||
alias goo='googler'
|
||||
alias se='sr -elvi'
|
||||
alias engines='sr -elvi'
|
||||
source "$HOME/.aliases/search.sh"
|
||||
|
||||
# Events
|
||||
alias agenda='calendar'
|
||||
@ -58,105 +32,74 @@ alias mails="gmail && gmail2"
|
||||
alias mailperso="gmail2"
|
||||
alias mailpro="gmail"
|
||||
|
||||
# Viewing files
|
||||
alias cat='bat --style=plain --color "always"'
|
||||
alias preview="fzf --preview 'bat --color \"always\" --style=plain {}' --cycle "
|
||||
alias markdown2='pandoc README.md | lynx -stdin -dump'
|
||||
alias markdown='glow'
|
||||
|
||||
# To do / Done
|
||||
#alias done='task_done'
|
||||
|
||||
# Management / Security / SSH / SSL
|
||||
alias mgmt='ssh $(whoami)@$PROXY_HOST -i ~/.ssh/id_ed25519'
|
||||
alias m='mgmt'
|
||||
alias tunnel='ssh -D 8000 -N $(whoami)@$PROXY_HOST -i ~/.ssh/id_ed25519'
|
||||
alias sshpub='cat ~/.ssh/id_ed25519.pub'
|
||||
alias ssla="openssl x509 -alias -noout -in" # Usage : ssla <cert>
|
||||
alias encrypt='ansible-vault encrypt **/vault.yml --vault-password-file=$VAULT_PASSWORD_FILE'
|
||||
alias decrypt='ansible-vault decrypt **/vault.yml --vault-password-file=$VAULT_PASSWORD_FILE'
|
||||
alias newpass='bw generate --special --uppercase --lowercase --number --length 30'
|
||||
source "$HOME/.aliases/secure.sh"
|
||||
|
||||
# Network
|
||||
alias ip='echo $(curl ident.me -4 2>/dev/null)'
|
||||
alias ipinfo='curl "ipinfo.io/"$(ip)'
|
||||
alias getips='\egrep "\b(([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}(1[0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]{1,2})\b"'
|
||||
source "$HOME/.aliases/network.sh"
|
||||
|
||||
# Misc
|
||||
alias h='cd $HOME'
|
||||
alias bash="/usr/local/bin/bash"
|
||||
alias diff='colordiff --side-by-side --ignore-space-change --width=200 --suppress-common-lines --recursive'
|
||||
alias cp='cp -i' # confirmation before overwrite #
|
||||
alias mv='mv -i' # confirmation before overwrite
|
||||
alias rm='gomi'
|
||||
alias df='df -H'
|
||||
alias du='ncdu --color dark -rr -x --exclude .git --exclude node_modules'
|
||||
#alias du='du -ch'
|
||||
alias weather='weather "?lang=fr&"'
|
||||
alias headers='curl -I --compress' # Find out if remote server supports gzip / mod_deflate or not #
|
||||
alias hist='history'
|
||||
# Downloads
|
||||
alias get="curl -O -L" # Download file and save it with filename of remote file
|
||||
|
||||
# Files & folder tricks
|
||||
source "$HOME/.aliases/files.sh"
|
||||
|
||||
alias path='echo -e ${PATH//:/\\n}' # Explode and display current PATH
|
||||
alias ping='prettyping -c 5 --nolegend' # Stop after sending count ECHO_REQUEST packets
|
||||
alias https='http --default-scheme=https' # useful alias stealed from a colleague. http is provided by httpie
|
||||
alias p='ps -ef | grep -i ' # Show matching processes. Usage : p <process name>
|
||||
alias root='sudo -i'
|
||||
alias s=ls
|
||||
alias sl=ll
|
||||
alias v=vi
|
||||
alias ls='lsd'
|
||||
alias tree='ls --almost-all --tree'
|
||||
alias pip='pip3'
|
||||
alias c='cat'
|
||||
alias x='extract'
|
||||
alias current_year='`echo date +"%Y"`'
|
||||
alias learnmore="apropos . | sort --random-sort | awk 'NR == 1 {print$1}' | cut -d'(' -f 1 | xargs man"
|
||||
alias biggerthan10='biggerthan 10M'
|
||||
alias latency='curl cheat.sh/latency'
|
||||
alias moon='curl "wttr.in/Moon?lang=fr"'
|
||||
alias lune='moon'
|
||||
alias help='tldr'
|
||||
# System Utils
|
||||
alias systeminfo='neofetch'
|
||||
alias monitoring='glances'
|
||||
alias ':q'='exit'
|
||||
alias reload="exec ${SHELL} -l" # Reload the shell (i.e. invoke as a login shell)
|
||||
alias sc="source $HOME/.zshrc"
|
||||
|
||||
# Infrastructure
|
||||
alias awsls='awsls -profile default -region eu-west-1 --attributes tags aws_instance'
|
||||
|
||||
# Package management tricks
|
||||
alias npmlist='npm list -g --depth 0'
|
||||
alias pip='pip3'
|
||||
|
||||
# RTFM
|
||||
alias learnmore="apropos . | sort --random-sort | awk 'NR == 1 {print$1}' | cut -d'(' -f 1 | xargs man"
|
||||
alias help='tldr'
|
||||
alias latency='curl cheat.sh/latency'
|
||||
|
||||
# Misc
|
||||
source "$HOME/.aliases/misc.sh"
|
||||
|
||||
# Linters
|
||||
alias checken="aspell check -d en"
|
||||
alias checkfr="aspell check -d fr"
|
||||
alias fixallscripts="shfmt -w -l -i 2 -ci **/*.sh"
|
||||
|
||||
# Development
|
||||
alias gw='./gradlew'
|
||||
|
||||
# NSFW
|
||||
alias irc='weechat'
|
||||
alias trello='3llo'
|
||||
|
||||
# Terraform
|
||||
source "$HOME/.aliases/terraform.sh"
|
||||
source "$HOME/.aliases/terragrunt.sh"
|
||||
|
||||
# Fun
|
||||
alias moon='curl "wttr.in/Moon?lang=fr"'
|
||||
alias lune='moon'
|
||||
alias unix='curl -L http://git.io/unix'
|
||||
alias coffee="curl -L http://git.io/coffee"
|
||||
alias hotcoffee="curl -sL git.io/hotcoffee | sh"
|
||||
alias usernames="python3 $HOME/Code/sherlock/sherlock.py --rank --print-found"
|
||||
alias checken="aspell check -d en"
|
||||
alias checkfr="aspell check -d fr"
|
||||
alias gw='./gradlew'
|
||||
alias terraform_landscape='landscape'
|
||||
alias tf='terraform'
|
||||
|
||||
# Music
|
||||
alias music='baton'
|
||||
alias mytracks='music me saved tracks'
|
||||
alias saved='mytracks'
|
||||
alias liked='saved'
|
||||
alias next='music next'
|
||||
alias prev='music prev'
|
||||
alias previous='prev'
|
||||
alias like='music save'
|
||||
alias curr='music status'
|
||||
source "$HOME/.aliases/music.sh"
|
||||
|
||||
# K8S
|
||||
alias k9s='COLORTERM=256bit k9s --all-namespaces'
|
||||
alias 9=k9s
|
||||
alias K=k9s
|
||||
|
||||
# Show/hide hidden files in Finder
|
||||
alias show="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder"
|
||||
alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder"
|
||||
|
||||
# Hide/show all desktop icons (useful when presenting)
|
||||
alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
|
||||
alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
|
||||
|
||||
# Flush Directory Service cache
|
||||
alias flush="dscacheutil -flushcache && killall -HUP mDNSResponder"
|
||||
# Macos specifics
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
source "$HOME/.aliases/macos.sh"
|
||||
;;
|
||||
esac
|
||||
|
||||
# This is the end ;( ... for now ;D
|
||||
|
@ -1,105 +1,274 @@
|
||||
# Text formatting utilities
|
||||
bold=$(tput bold)
|
||||
underline=$(tput sgr 0 1)
|
||||
reset=$(tput sgr0)
|
||||
purple=$(tput setaf 171)
|
||||
red=$(tput setaf 1)
|
||||
green=$(tput setaf 76)
|
||||
tan=$(tput setaf 3)
|
||||
blue=$(tput setaf 38)
|
||||
header() {
|
||||
printf "\n${bold}${purple}========== %s ==========${reset}\n" "$@"
|
||||
}
|
||||
arrow() {
|
||||
printf " ➜ %s\n" "$@"
|
||||
}
|
||||
success() {
|
||||
printf "${green} ✔ %s${reset}\n" "$@"
|
||||
}
|
||||
error() {
|
||||
printf "${red} ✖ %s${reset}\n" "$@"
|
||||
}
|
||||
warning() {
|
||||
printf "${tan} ➜ %s${reset}\n" "$@"
|
||||
}
|
||||
underline() {
|
||||
printf "${underline}${bold}%s${reset}\n" "$@"
|
||||
}
|
||||
bold() {
|
||||
printf "${bold}%s${reset}\n" "$@"
|
||||
}
|
||||
note() {
|
||||
printf "${underline}${bold}${blue}Note:${reset} ${blue}%s${reset}\n" "$@"
|
||||
}
|
||||
function substring() {
|
||||
local _length=${#1}
|
||||
local _start=${2}
|
||||
local _end=${3}
|
||||
echo ${1:_start:_length-_end}
|
||||
}
|
||||
|
||||
|
||||
# Browser interaction utilities
|
||||
function browse() {
|
||||
open -na "$DEFAULT_BROWSER" --args "$1"
|
||||
}
|
||||
function incognito() {
|
||||
open -na "$DEFAULT_BROWSER" --args --incognito "$1"
|
||||
}
|
||||
function google() {
|
||||
open -na "Google Chrome" --args "https://www.google.com/search?q=$*"
|
||||
browse "https://www.google.com/search?q=$*"
|
||||
}
|
||||
function stackoverflow() {
|
||||
open -na "Google Chrome" --args "https://www.google.com/search?q=site:stackoverflow.com $*"
|
||||
browse "https://www.google.com/search?q=site:stackoverflow.com $*"
|
||||
}
|
||||
function github() {
|
||||
open -na "Google Chrome" --args "https://github.com/search?q=$*"
|
||||
browse "https://github.com/search?q=$*"
|
||||
}
|
||||
function hacker() {
|
||||
open -na "Google Chrome" --args "https://hn.algolia.com/?sort=byDate&query=$*"
|
||||
browse "https://hn.algolia.com/?sort=byDate&query=$*"
|
||||
}
|
||||
function gmail() {
|
||||
open -na "Google Chrome" --args "https://mail.google.com/mail/u/0"
|
||||
browse "https://mail.google.com/mail/u/0"
|
||||
}
|
||||
function gmail2() {
|
||||
open -na "Google Chrome" --args "https://mail.google.com/mail/u/1"
|
||||
browse "https://mail.google.com/mail/u/1"
|
||||
}
|
||||
function cicdboard() {
|
||||
open -na "Google Chrome" --args "$JIRA_URL/secure/RapidBoard.jspa?rapidView=457&view=planning.nodetail"
|
||||
browse "$JIRA_URL/secure/RapidBoard.jspa?rapidView=457&view=planning.nodetail"
|
||||
}
|
||||
function cicddashboard() {
|
||||
open -na "Google Chrome" --args "$JIRA_URL/secure/Dashboard.jspa?selectPageId=13131"
|
||||
browse "$JIRA_URL/secure/Dashboard.jspa?selectPageId=13131"
|
||||
}
|
||||
function calendar() {
|
||||
browse "https://calendar.google.com/calendar/r?tab=mc"
|
||||
}
|
||||
function asana() {
|
||||
browse "https://app.asana.com"
|
||||
}
|
||||
function confluencetasks() {
|
||||
browse "$CONFLUENCE_URL/plugins/inlinetasks/mytasks.action"
|
||||
}
|
||||
function trello_web() {
|
||||
browse "$TRELLO_BOARD_URL"
|
||||
}
|
||||
function bookmarks() {
|
||||
browse "https://github.com/MorganGeek/bookmarks/blob/master/README.md"
|
||||
}
|
||||
function spotify() {
|
||||
browse "https://open.spotify.com/search/$*"
|
||||
}
|
||||
function lob() {
|
||||
browse "https://lobste.rs"
|
||||
}
|
||||
function archive() {
|
||||
browse "https://web.archive.org/web/*/$*"
|
||||
}
|
||||
function iknowwhatyoudownload() {
|
||||
browse "https://iknowwhatyoudownload.com/en/peer/?ip=$*"
|
||||
}
|
||||
function vimium() {
|
||||
browse "chrome-extension://dbepggeogbaibhgnhhndojpepiihcmeb/pages/options.html#"
|
||||
}
|
||||
function toby() {
|
||||
browse "chrome-extension://gfdcgfhkelkdmglklfbndgopaihmoeci/toby.html"
|
||||
}
|
||||
# Jira utilities
|
||||
function issues() {
|
||||
jira issue jql "status = Open AND text ~ \"$*\" ORDER BY Created DESC"
|
||||
}
|
||||
function calendar() {
|
||||
open -na "Google Chrome" --args "https://calendar.google.com/calendar/r?tab=mc"
|
||||
}
|
||||
function asana() {
|
||||
open -na "Google Chrome" --args "https://app.asana.com"
|
||||
}
|
||||
function bookmarks() {
|
||||
open -na "Google Chrome" --args "https://github.com/MorganGeek/bookmarks/blob/master/README.md"
|
||||
}
|
||||
function spotify() {
|
||||
open -na "Google Chrome" --args "https://open.spotify.com/search/$*"
|
||||
}
|
||||
function lob() {
|
||||
open -na "Google Chrome" --args "https://lobste.rs"
|
||||
function istherenewissues() {
|
||||
LASTISSUE=$(newissues | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' | awk 'FNR==2{print $2}')
|
||||
if [[ -f "$HOME/.newjiraissue" ]]; then
|
||||
previous_jira_issue=$(\cat "$HOME/.newjiraissue" | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g') # the sed part is for removing output colors
|
||||
if [ "$LASTISSUE" != "$previous_jira_issue" ]; then
|
||||
newissues
|
||||
else
|
||||
success "no new issue"
|
||||
fi
|
||||
fi
|
||||
echo "$LASTISSUE" >"$HOME/.newjiraissue"
|
||||
}
|
||||
|
||||
# Prolog / Logtalk
|
||||
function logtalk() {
|
||||
path_swilgt=$(find /usr/local/Cellar/logtalk -name "*swilgt.sh" 2>/dev/null)
|
||||
sh "$path_swilgt"
|
||||
}
|
||||
function archive() {
|
||||
open -na "Google Chrome" --args "https://web.archive.org/web/*/$*"
|
||||
}
|
||||
function git_listobjectsbysize() {
|
||||
tempFile=$(mktemp)
|
||||
IFS=$'\n'
|
||||
for commitSHA1 in $(git rev-list --all); do
|
||||
git ls-tree -r --long "$commitSHA1" >>"$tempFile"
|
||||
done
|
||||
|
||||
# sort files by SHA1, de-dupe list and finally re-sort by filesize
|
||||
sort --key 3 "$tempFile" | \
|
||||
uniq | \
|
||||
sort --key 4 --numeric-sort --reverse
|
||||
# remove temp file
|
||||
rm -f "$tempFile"
|
||||
}
|
||||
# History / Aliases helpers
|
||||
function top_commands() {
|
||||
history | cat | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a; }' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n50
|
||||
local filter="$1"
|
||||
local max_results=${2:-'50'}
|
||||
history | \cat | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a; }' G --invert-match "./" | column -c3 -s " " -t G "$filter" | sort --numeric-sort --reverse | nl H "-n$max_results"
|
||||
}
|
||||
function top_commands_full() {
|
||||
history | cat | sed 's/^[0-9 TAB]*//g' | awk '{CMD[$0]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "%\t" a; }' | sort -nr | nl | head -n50
|
||||
local filter="$1"
|
||||
local max_results=${2:-'50'}
|
||||
history | \cat | awk '{$1=$1};1' | sed 's/^[0-9\* TAB]*//g' | awk '{CMD[$0]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "%\t" a; }' G "$filter" | sort --numeric-sort --reverse | nl H "-n$max_results"
|
||||
}
|
||||
function istherenewissues() {
|
||||
LASTISSUE=$(newissues | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' | awk 'FNR==2{print $2}')
|
||||
if [[ -f "$HOME/.newjiraissue" ]]
|
||||
then
|
||||
previous_jira_issue=$(cat "$HOME/.newjiraissue" | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g') # the sed part is for removing output colors
|
||||
if [ "$LASTISSUE" != "$previous_jira_issue" ]; then
|
||||
newissues
|
||||
# Where is a function defined?
|
||||
function whichfunc() {
|
||||
whence -v $1
|
||||
type -a $1
|
||||
}
|
||||
source "$HOME/Code/dotfiles/dot_scripts/suggest_readable_parameters.sh"
|
||||
# TODO : suggest spelling fixes
|
||||
function suggest_code_refactoring() {
|
||||
#inspired by : \grep 'awk '\''{$1=$1};1'\' $HOME/Code/dotfiles/dot_zsh*
|
||||
header "code refactoring suggestions"
|
||||
while read -r line; do
|
||||
local short_name=$(echo "$line" | sed -E "s/='.*//g")
|
||||
local alias_value=$(echo "$line" | sed -E 's/[a-zA-Z_-]+=//g')
|
||||
local alias_value_truncated=${alias_value:1:$((${#alias_value} - 2))}
|
||||
\fgrep -d skip $alias_value_truncated "$@" 2>/tmp/error.log | \grep --invert-match "alias $short_name=" 1>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
success "found $short_name --> $alias_value_truncated"
|
||||
\fgrep -d skip "$alias_value_truncated" "$@" --color -n -H --line-buffered | \grep --invert-match "alias $short_name="
|
||||
else
|
||||
echo "no new issue"
|
||||
local error_message=$(\cat /tmp/error.log)
|
||||
if [ -n "$error_message" ]; then
|
||||
error "issue occured when looking for $alias_value_truncated : $error_message"
|
||||
fi
|
||||
fi
|
||||
echo "$LASTISSUE" > "$HOME/.newjiraissue"
|
||||
done < <(alias | awk -v COUNT=1 'NF>COUNT') # list of all aliases, excluding the less interesting ones (where we use one word for another)
|
||||
}
|
||||
function aboutpage() {
|
||||
year=$(echo "$*" | egrep -Eo '\b[[:digit:]]{4}\b' | head -n1)
|
||||
if [ -z "$year" ]
|
||||
then
|
||||
year=$(curl -sSL "$*" | tr '<' '\r' | \egrep -i "date|datetime" -A 1 | \grep -Eo '\b[[:digit:]]{4}\b' | head -n1)
|
||||
function suggest_aliases() {
|
||||
local search_input_size=${1:-'50'}
|
||||
header "alias recommendations"
|
||||
while read -r line; do
|
||||
local matching_aliases=$(ag --multiline "$line")
|
||||
if [ ! -z "$matching_aliases" ]; then
|
||||
success "there is an alias for $line :"
|
||||
while read -r alias_line; do
|
||||
arrow "$alias_line"
|
||||
done < <(echo "$matching_aliases")
|
||||
echo
|
||||
else
|
||||
warning "no alias for $line"
|
||||
fi
|
||||
author=$(curl -sSL "$*" | tr '<' '\r' | \egrep -i "author" -A 1 | \grep -Eo '([A-Z][A-Za-z]+\s([A-Za-z ]+)*)' | head -n1)
|
||||
title=$(curl -sSL "$*" | tr '<' '<\n' | \grep title -A 1 | head -n1 | sed -E 's/.*<title>(.*)<\/title>.*/\1/' | sed "s/ [^[:alnum:]]*$author//")
|
||||
done < <(top_commands_full "" "$search_input_size" | awk '{ $1=""; $2=""; $3=""; print}' | awk 'NF' | awk '{$1=$1};1' | awk -v COUNT=1 'NF>COUNT' H "-$search_input_size")
|
||||
}
|
||||
|
||||
# Download management
|
||||
function file_to_kindle() {
|
||||
local source_file="$1"
|
||||
if [[ "$source_file" =~ .*.epub$ ]]; then
|
||||
if epub2mobi "$source_file" 2>/dev/null; then
|
||||
source_file=$(echo $source_file | sed 's/.epub$/.mobi/')
|
||||
fi
|
||||
fi
|
||||
file_to_mail "$source_file" "$KINDLE_ACCOUNT_EMAIL"
|
||||
}
|
||||
function getabook() {
|
||||
local searchterm="$1"
|
||||
if searchbook "$searchterm"; then
|
||||
echo "new downloaded file"
|
||||
grepsearchterm=$(echo "$searchterm" | sed 's/ /.*/g')
|
||||
if find ~/Downloads/Books -mmin -2 | grip "$grepsearchterm.*(epub|mobi|pdf)$"; then
|
||||
local matching_file=$(find ~/Downloads/Books -mmin -2 | grip "$grepsearchterm.*(epub|mobi|pdf)$" | head -1)
|
||||
local downloaded_file=$(basename "$matching_file")
|
||||
cd "$HOME/Downloads/Books" &>/dev/null || exit
|
||||
success "file downloaded in your Books folder : $downloaded_file"
|
||||
if file_to_kindle "$downloaded_file" 2>/dev/null; then
|
||||
success "file sent to your kindle, please review your emails to approve the transfer"
|
||||
mailperso
|
||||
else
|
||||
error "could not send your file $downloaded_file to your email address, please check your folder"
|
||||
open ~/Downloads/Books
|
||||
fi
|
||||
else
|
||||
error "could not find a matching file in your download folder"
|
||||
fi
|
||||
else
|
||||
error ":'( the automatic download failed for $1, does this book exists ? check yourself or retry"
|
||||
browse "https://libgen.lc/search.php?req=$1"
|
||||
fi
|
||||
}
|
||||
|
||||
# Mail management
|
||||
source $HOME/Code/dotfiles/dot_scripts/sendmail.sh
|
||||
|
||||
# Sound management
|
||||
# Inspired by https://apple.stackexchange.com/a/213048/231885 for switching devices
|
||||
# and https://coderwall.com/p/22p0ja/set-get-osx-volume-mute-from-the-command-line for volume management
|
||||
function mute_device() {
|
||||
local current_device=$(SwitchAudioSource -c)
|
||||
local target_device="$1"
|
||||
if SwitchAudioSource -a G "$target_device" 1>/dev/null; then
|
||||
SwitchAudioSource -s "$1" 1>/dev/null
|
||||
osascript -e 'set volume output muted true'
|
||||
success "device $target_device muted"
|
||||
SwitchAudioSource -s "$current_device" 1>/dev/null
|
||||
if [ "$current_device" != "$target_device" ]; then
|
||||
arrow "switching back to $current_device"
|
||||
fi
|
||||
arrow "currently using $current_device"
|
||||
else
|
||||
error "sound device not found : $target_device (maybe it's disconnected ?)"
|
||||
fi
|
||||
}
|
||||
function switch_device() {
|
||||
local target_device="$1"
|
||||
if SwitchAudioSource -a G "$target_device" 1>/dev/null; then
|
||||
if SwitchAudioSource -s "$1" 1>/dev/null; then
|
||||
success "switched to $target_device"
|
||||
unmute
|
||||
else
|
||||
error "failed to switch to $target_device"
|
||||
fi
|
||||
else
|
||||
error "sound device not found : $target_device (maybe it's disconnected ?)"
|
||||
fi
|
||||
}
|
||||
|
||||
# Web Crawling
|
||||
function aboutpage() {
|
||||
year=$(echo "$*" | egrep --extended-regexp --only-matching '\b[[:digit:]]{4}\b' H -n1)
|
||||
if [ -z "$year" ]; then
|
||||
year=$(curl --silent --show-error --location "$*" | tr '<' '\r' | \egrep --ignore-case "date|datetime" -A 1 | \grep --extended-regexp --only-matching '\b[[:digit:]]{4}\b' H -n1)
|
||||
fi
|
||||
author=$(curl --silent --show-error --location "$*" | tr '<' '\r' | \egrep --ignore-case "author" -A 1 | \grep --extended-regexp --only-matching '([A-Z][A-Za-z]+\s([A-Za-z ]+)*)' H -n1)
|
||||
title=$(curl --silent -SL "$*" | tr '<' '<\n' | \grep title -A 1 H -n1 | sed -E 's/.*<title>(.*)<\/title>.*/\1/' | sed "s/ [^[:alnum:]]*$author//")
|
||||
yearint=$(($year + 0))
|
||||
currentyear=$(echo `date +"%Y"`)
|
||||
if [ ! -z "$author" ]
|
||||
then
|
||||
currentyear=$(echo $(date +"%Y"))
|
||||
if [ ! -z "$author" ]; then
|
||||
echo "by $author"
|
||||
fi
|
||||
if [ ! -z "$title" ]
|
||||
then
|
||||
if [ ! -z "$title" ]; then
|
||||
echo "-> $title"
|
||||
fi
|
||||
if [[ $yearint -ge 1970 && $yearint -le $currentyear ]]
|
||||
then
|
||||
if [[ $yearint -ge 1970 && $yearint -le $currentyear ]]; then
|
||||
echo "$yearint"
|
||||
fi
|
||||
if [ ! -z "$title" ] && [ ! -z "$author" ] && [[ $yearint -ge 1970 && $yearint -le $currentyear ]]; then
|
||||
@ -114,11 +283,12 @@ function col() {
|
||||
}
|
||||
# Skip first x words in line
|
||||
# via https://blog.developer.atlassian.com/ten-tips-for-wonderful-bash-productivity/
|
||||
function skip {
|
||||
function skip() {
|
||||
n=$(($1 + 1))
|
||||
cut -d' ' -f$n-
|
||||
}
|
||||
|
||||
# Code search / stats helpers
|
||||
cmd_loc="find . -type f \( \
|
||||
-name '*.py' \
|
||||
-o -name '*.rb' \
|
||||
@ -128,31 +298,108 @@ cmd_loc="find . -type f \( \
|
||||
-o -name '*.c' -o -name '*.h' \
|
||||
-o -name '*.js' \
|
||||
-o -name '*.tsx' \
|
||||
-o -name '*.sh' \
|
||||
-o -name '*.md' \
|
||||
-o -name '*.xml' \
|
||||
-o -name '*.yaml' -o -name '*.yml' \
|
||||
-o -name '*.groovy' \
|
||||
-o -name '*.gradle' \
|
||||
-o -name '*.properties' \
|
||||
\) -exec \cat \{\} \; | LANG=C LC_CTYPE=C sed -e 's/^[ \t]*//;s/[ \t]*$//'"
|
||||
|
||||
# Unique lines of code
|
||||
# Via https://text.causal.agency/004-uloc.txt
|
||||
function uloc {
|
||||
eval "$cmd_loc | LANG=C LC_CTYPE=C sort -u | wc -l"
|
||||
function uloc() {
|
||||
eval "$cmd_loc | LANG=C LC_CTYPE=C sort --unique | wc -l"
|
||||
}
|
||||
|
||||
# Top lines of code
|
||||
function toploc {
|
||||
eval "$cmd_loc | LANG=C LC_CTYPE=C cut -c 1-100 | LANG=C LC_CTYPE=C sort | uniq -c | LANG=C LC_CTYPE=C sort -nr"
|
||||
function toploc() {
|
||||
eval "$cmd_loc | LANG=C LC_CTYPE=C cut -c 1-100 | LANG=C LC_CTYPE=C sort | uniq -c | LANG=C LC_CTYPE=C sort --numeric-sort --reverse H -50"
|
||||
}
|
||||
function historyloc() {
|
||||
top_commands_full "" 5000 topshellloc
|
||||
}
|
||||
function how_in() {
|
||||
where="$1"
|
||||
shift
|
||||
IFS=+ curl "cht.sh/${where}/$*"
|
||||
}
|
||||
# File name references in file
|
||||
function filerefs() {
|
||||
FILENAME=${1:-README*)}
|
||||
\grep --extended-regexp --only-matching "\b([a-zA-Z.-]+)\.([a-z]{2,4}\b)" $FILENAME \
|
||||
| sort --unique \
|
||||
| egrep --invert-match --ignore-case "\.com|\.git|\.io|\net|\.org|\.se|\.me|\.fr|contributing\.md"
|
||||
}
|
||||
function invalid_file_refs() {
|
||||
FILENAME=${1:-"README.*"}
|
||||
while read -r file_ref; do
|
||||
arrow "processing $file_ref ..."
|
||||
find . -name "$file_ref" 1>/dev/null
|
||||
local exit_status=$?
|
||||
if [ $exit_status -eq 1 ]; then
|
||||
warning "$file_ref does not exist in the project"
|
||||
else
|
||||
success "$file_ref was found in the project"
|
||||
fi
|
||||
arrow "checking if $file_ref is present in the source code..."
|
||||
source_refs=$(\grep "$file_ref" * -r -l G --invert-match "$FILENAME" | wc -l 2>/dev/null | trim)
|
||||
if [ "$source_refs" -eq 0 ]; then
|
||||
error "$file_ref was not found in source code"
|
||||
else
|
||||
arrow "searching for $file_ref references in soure code..."
|
||||
while read -r source_ref; do
|
||||
success "$file_ref was found in $source_ref"
|
||||
done < <(\grep "$file_ref" * -r -l)
|
||||
fi
|
||||
done < <(filerefs "$FILENAME")
|
||||
}
|
||||
|
||||
|
||||
# Text search
|
||||
# run write-good, proselint, and aspell in non interactive mode, to list all mispelled words found
|
||||
function checkenlist() {
|
||||
aspell -d en list < "$1" | sort --unique --ignore-case
|
||||
write-good --no-passive "$1"
|
||||
proselint "$1"
|
||||
alex -q --stdin < "$1"
|
||||
}
|
||||
|
||||
function checkenremote() {
|
||||
local target_url="$1"
|
||||
if [[ ! "$target_url" =~ "githubusercontent.com" && ! "$target_url" =~ "README" && ! "$target_url" =~ "readme" ]]; then
|
||||
arrow "no readme found"
|
||||
local guess_readme_url=$(http "$target_url" | \grep -ioP 'href="\K.*REAdme.(md|rst)(?=")' | head -1)
|
||||
arrow "does https://github.com${guess_readme_url} exist "
|
||||
arrow "guess url : $guess_readme_url"
|
||||
if http --check-status "https://github.com${guess_readme_url}" &>/dev/null; then
|
||||
target_url="https://github.com${guess_readme_url}"
|
||||
arrow "target url changed to ${target_url}"
|
||||
else
|
||||
arrow "https://github.com${guess_readme_url} do not exist"
|
||||
fi
|
||||
fi
|
||||
target_url=$(echo "$target_url" | sed 's/github.com/raw.githubusercontent.com/g' | sed 's;blob/;;')
|
||||
arrow "checking $target_url"
|
||||
curl --location --insecure --silent "$target_url" > /tmp/file && checkenlist /tmp/file #&& write-good --no-passive /tmp/file && proselint /tmp/file && \cat /tmp/file > alex -q --stdin
|
||||
}
|
||||
|
||||
# Time management
|
||||
function zoomtimeboxed() {
|
||||
declare -i total_minutes=$1
|
||||
declare -i total_seconds=$total_minutes*60
|
||||
echo $total_seconds;
|
||||
arrow "will start zoom and leave it after $total_minutes minutes ($total_seconds seconds)"
|
||||
zoom; (sleep "$total_seconds" && nozoom) &
|
||||
}
|
||||
|
||||
# File stats helpers
|
||||
# Find files bigger than X size and sort them by size
|
||||
function biggerthan() {
|
||||
find . -size "+$*" -type f -print0 | xargs -0 ls -Ssh | sort -z
|
||||
find . -size "+$*" -type f -print0 | xargs -0 ls -Ssh | sort --zero-terminated
|
||||
}
|
||||
# To automatically ls when changing directory
|
||||
function cd() {
|
||||
builtin cd "$@" && ls -latr
|
||||
builtin cd "$@" && ll -atr
|
||||
}
|
||||
function mouse() {
|
||||
case "$(uname -s)" in
|
||||
@ -161,54 +408,60 @@ function mouse() {
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Conversion
|
||||
function epub2pdf() {
|
||||
local output_file_name=$(echo $1 | sed 's/.epub$/.pdf/')
|
||||
ebook-convert "$1" "$output_file_name"
|
||||
}
|
||||
function epub2mobi() {
|
||||
local output_file_name=$(echo $1 | sed 's/.epub$/.mobi/')
|
||||
ebook-convert "$1" "$output_file_name"
|
||||
}
|
||||
|
||||
# Information gathering
|
||||
function meteo() {
|
||||
curl "fr.wttr.in/$*"
|
||||
}
|
||||
function how_in() {
|
||||
where="$1"; shift
|
||||
IFS=+ curl "cht.sh/${where}/$*"
|
||||
}
|
||||
function rate() {
|
||||
curl "http://rate.sx/$*"
|
||||
}
|
||||
transfer() {
|
||||
|
||||
# Uploaders
|
||||
function transfer() {
|
||||
# check arguments
|
||||
if [ $# -eq 0 ];
|
||||
then
|
||||
echo "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"
|
||||
if [ $# -eq 0 ]; then
|
||||
warning "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# get temporarily filename, output is written to this file show progress can be showed
|
||||
tmpfile=$( mktemp -t transferXXX )
|
||||
tmpfile=$(mktemp -t transferXXX)
|
||||
|
||||
# upload stdin or file
|
||||
file=$1
|
||||
|
||||
if tty -s;
|
||||
then
|
||||
if tty -s; then
|
||||
basefile=$(basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g')
|
||||
|
||||
if [ ! -e $file ];
|
||||
then
|
||||
echo "File $file doesn't exists."
|
||||
if [ ! -e $file ]; then
|
||||
error "File $file doesn't exists."
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [ -d $file ];
|
||||
then
|
||||
if [ -d $file ]; then
|
||||
# zip directory and transfer
|
||||
zipfile=$( mktemp -t transferXXX.zip )
|
||||
cd $(dirname $file) && zip -r -q - $(basename $file) >> $zipfile
|
||||
curl --progress-bar --upload-file "$zipfile" "https://transfer.sh/$basefile.zip" >> $tmpfile
|
||||
zipfile=$(mktemp -t transferXXX.zip)
|
||||
cd $(dirname $file) && zip -r -q - $(basename $file) >>$zipfile
|
||||
curl --progress-bar --upload-file "$zipfile" "https://transfer.sh/$basefile.zip" >>$tmpfile
|
||||
rm -f $zipfile
|
||||
else
|
||||
# transfer file
|
||||
curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >> $tmpfile
|
||||
curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >>$tmpfile
|
||||
fi
|
||||
else
|
||||
# transfer pipe
|
||||
curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >> $tmpfile
|
||||
curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >>$tmpfile
|
||||
fi
|
||||
# cat output link
|
||||
cat $tmpfile
|
||||
@ -216,31 +469,18 @@ transfer() {
|
||||
# cleanup
|
||||
rm -f $tmpfile
|
||||
}
|
||||
# Where is a function defined?
|
||||
function whichfunc() {
|
||||
whence -v $1
|
||||
type -a $1
|
||||
}
|
||||
|
||||
# git shortcuts
|
||||
function gcrb {
|
||||
branch=$1
|
||||
git checkout -b $branch origin/$branch
|
||||
}
|
||||
function terraform-compliance { docker run --rm -v "$(pwd):/target" -i -t eerkunt/terraform-compliance "$@"; }
|
||||
function checkov { docker run -i --rm -v "$(pwd):/tf" bridgecrew/checkov -d /tf "$@" ; }
|
||||
function vimat {
|
||||
function checkov() { docker run -i --rm -v "$(pwd):/tf" bridgecrew/checkov -d /tf "$@"; }
|
||||
function vimat() {
|
||||
vim +/$1 $2
|
||||
}
|
||||
function copyhooks {
|
||||
cp -f ~/.git-template/.pre-commit-config.yaml ./
|
||||
pre-commit install --install-hooks --overwrite
|
||||
pre-commit run -a
|
||||
function httperr() {
|
||||
curl --silent "https://http.cat/$1" | imgcat
|
||||
}
|
||||
function httperr {
|
||||
curl -s "https://http.cat/$1" | imgcat
|
||||
}
|
||||
function terragrunt_color {
|
||||
|
||||
# Config / Infra as code
|
||||
function terraform-compliance() { docker run --rm -v "$(pwd):/target" -i -t eerkunt/terraform-compliance "$@"; }
|
||||
function terragrunt_color() {
|
||||
BOLD=$(tput bold)
|
||||
BLACK=$(tput setaf 0)
|
||||
RED=$(tput setaf 1)
|
||||
@ -265,59 +505,269 @@ function terragrunt_color {
|
||||
-e "s/\( *.*: *\)\(\".*\"\)\( => \)\(\".*\"\)/${YELLOW}\1${RED}\2${BLACK}\3${GREEN}\4${RESET}/" \
|
||||
-e "s/\( *.*: *\".*\"\)/${GREEN}\1${RESET}/"
|
||||
}
|
||||
function git-project {
|
||||
function jenkins-cli() {
|
||||
local script_location=$(find $HOME/code/jenkins-cloudbees-core -name "jenkins-cli.sh")
|
||||
eval "$script_location $*"
|
||||
}
|
||||
|
||||
# Security / Secrets helpers
|
||||
function passwords() {
|
||||
bw list items --search "$1" | jq -c '.[] | .name + " " + .login.username + ":" + .login.password + " " + .login.uris[0].uri'
|
||||
}
|
||||
function password() {
|
||||
bw get password "$1"
|
||||
}
|
||||
function vaultgetsecret() {
|
||||
local secret=$(grep -A 500 "ANSIBLE_VAULT" "$1" | awk '{$1=$1;print}' | \grep --extended-regexp --only-matching "^[0-9a-z^ ]+$")
|
||||
local secret_string=$(echo "\$ANSIBLE_VAULT;1.1;AES256\n$secret")
|
||||
echo "$secret_string" | awk '{$1=$1;print}' | ansible-vault decrypt --vault-password-file=$VAULT_PASSWORD_FILE
|
||||
}
|
||||
|
||||
### Git helpers
|
||||
function backupgithub() {
|
||||
cd "$REPO_PATH"
|
||||
curl --silent --location "https://api.github.com/users/$1/repos" | jq -r '.[] | .ssh_url' | xargs -n1 git clone --mirror --no-hardlinks
|
||||
}
|
||||
function gitydiff() {
|
||||
local path_to_file="$1"
|
||||
gsh "HEAD:$path_to_file" | colordiff -y - "$path_to_file"
|
||||
}
|
||||
function gcrb() {
|
||||
branch=$1
|
||||
gcb $branch origin/$branch
|
||||
}
|
||||
|
||||
function installhooks() {
|
||||
pre-commit install --install-hooks --overwrite --allow-missing-config
|
||||
}
|
||||
function copyhooks() {
|
||||
FILENAME=${1:-"$HOME/.git-template/.pre-commit-config.yaml"}
|
||||
cp -f "$FILENAME" ./.pre-commit-config.yaml
|
||||
installhooks
|
||||
runhooks
|
||||
}
|
||||
function git_listobjectsbysize() {
|
||||
tempFile=$(mktemp)
|
||||
IFS=$'\n'
|
||||
for commitSHA1 in $(git rev-list --all); do
|
||||
git ls-tree -r --long "$commitSHA1" >>"$tempFile"
|
||||
done
|
||||
|
||||
# sort files by SHA1, de-dupe list and finally re-sort by filesize
|
||||
sort --key 3 "$tempFile" |
|
||||
uniq |
|
||||
sort --key 4 --numeric-sort --reverse
|
||||
# remove temp file
|
||||
rm -f "$tempFile"
|
||||
}
|
||||
function setorigin() {
|
||||
gra origin "$1" 2>/dev/null
|
||||
grset origin "$1"
|
||||
success "updated origin to $1"
|
||||
arrow "copying pre-commit hooks ..."
|
||||
if [[ "$1" =~ "$COMPANY_NAME" ]]; then
|
||||
copyhooks
|
||||
gitpro
|
||||
else
|
||||
copyhooks "$HOME/.git-template/.pre-commit-minimal-config.yaml"
|
||||
gitperso
|
||||
fi
|
||||
}
|
||||
function gitpushcurrentremote() {
|
||||
gitpushallremote "$(git_current_branch)"
|
||||
}
|
||||
function gitpushallremote() {
|
||||
local param_branch="$1"
|
||||
grv
|
||||
grv G push | awk '{print $1}' | while read -r remote; do
|
||||
if [ -z "$param_branch" ]; then
|
||||
arrow "pushing all branches to $remote"
|
||||
gp --all "$remote"
|
||||
else
|
||||
arrow "pushing $param_branch to $remote"
|
||||
gp "$remote" "$param_branch"
|
||||
fi
|
||||
done
|
||||
}
|
||||
function clone() {
|
||||
local folder=$(basename $1 | sed 's/\.git.*//g')
|
||||
arrow "git project identified as $folder"
|
||||
arrow "cloning repository ..."
|
||||
if gcls "$1"; then
|
||||
success "repository cloned"
|
||||
if [[ -n "$folder" ]]; then
|
||||
cd "$folder" || exit
|
||||
arrow "copying pre-commit hooks ..."
|
||||
if [[ "$1:u" =~ "$COMPANY_NAME:u" ]]; then
|
||||
copyhooks
|
||||
gitpro
|
||||
else
|
||||
copyhooks "$HOME/.git-template/.pre-commit-minimal-config.yaml"
|
||||
gitperso
|
||||
fi
|
||||
else
|
||||
error "unable to change current directory to : $folder"
|
||||
fi
|
||||
else
|
||||
error "unable to clone repository from url : $1"
|
||||
fi
|
||||
}
|
||||
function fork() {
|
||||
code || exit
|
||||
local folder=$(basename $1 | sed 's/\.git.*//g')
|
||||
gh repo fork "$1" --clone && cd "$folder"
|
||||
if [[ "$1:u" =~ "$COMPANY_NAME:u" ]]; then
|
||||
gitpro
|
||||
else
|
||||
gitperso
|
||||
fi
|
||||
checkreadme
|
||||
# TODO : check all the codebase for spelling mistakes in info/debug/error messages etc.
|
||||
}
|
||||
function git-project() {
|
||||
if [ -d "$REPO_PATH" ]; then
|
||||
REPO_PATH="$(pwd)"
|
||||
fi
|
||||
local preview='lsd --color always --icon always --group-dirs first {}'
|
||||
local dir=$(find $REPO_PATH -maxdepth 3 -type d -name ".git" | sed 's#.git$##' | fzf --select-1 --query="$*" --preview "$preview")
|
||||
local dir=$(find "$REPO_PATH" -maxdepth 3 -type d -name ".git" | sed 's#.git$##' | fzf --select-1 --query="$*" --preview "$preview")
|
||||
if [[ -n "$dir" ]]; then
|
||||
cd "$dir"
|
||||
cd "$dir" || exit
|
||||
fi
|
||||
}
|
||||
function jenkins-cli {
|
||||
local script_location=$(find $HOME/code/jenkins-cloudbees-core -name "jenkins-cli.sh")
|
||||
eval "$script_location $*"
|
||||
function gitignorefor() {
|
||||
local language=${1:-''}
|
||||
if [ ! -d "$HOME/Code/gitignore" ]; then
|
||||
arrow "cloning https://github.com/github/gitignore into $REPO_PATH/gitignore"
|
||||
git clone "https://github.com/github/gitignore $_"
|
||||
fi
|
||||
local gitignore_file=$(fd "$language" "$REPO_PATH/gitignore" H -n1)
|
||||
if [ ! -z "$gitignore_file" ]; then
|
||||
success "matched gitignore file : $gitignore_file"
|
||||
if [ ! -f "$(pwd)/.gitignore" ]; then
|
||||
arrow "you don't have a $(pwd)/.gitignore file, but that's not an issue :-) ..."
|
||||
fi
|
||||
arrow "copying the file content to your $(pwd)/.gitignore file"
|
||||
adhoc blockinfile -a "block='{{ lookup('file', '$gitignore_file') }}' dest='$(pwd)/.gitignore' create=yes"
|
||||
else
|
||||
error "no gitignore file found for $language"
|
||||
fi
|
||||
}
|
||||
function passwords {
|
||||
bw list items --search "$1" | jq -c '.[] | .name + " " + .login.username + ":" + .login.password + " " + .login.uris[0].uri'
|
||||
}
|
||||
function password {
|
||||
bw get password "$1"
|
||||
}
|
||||
function vaultgetsecret {
|
||||
local secret=$(grep -A 500 "ANSIBLE_VAULT" "$1" | awk '{$1=$1;print}' | \grep -Eo "^[0-9a-z^ ]+$")
|
||||
local secret_string=$(echo "\$ANSIBLE_VAULT;1.1;AES256\n$secret")
|
||||
echo "$secret_string" | awk '{$1=$1;print}' | ansible-vault decrypt --vault-password-file=$VAULT_PASSWORD_FILE
|
||||
}
|
||||
function setorigin {
|
||||
gra origin "$1" 2>/dev/null
|
||||
grset origin "$1"
|
||||
copyhooks
|
||||
}
|
||||
function gitpushallremote {
|
||||
grv
|
||||
grv | grep push | awk '{print $1}' | while read -r remote
|
||||
do
|
||||
echo "$remote"
|
||||
git push --all "$remote"
|
||||
done
|
||||
}
|
||||
function clone {
|
||||
local folder=$(echo $1 | cut -d'/' -f2 | cut -d'.' -f1)
|
||||
gcls "$1"
|
||||
cd "$folder"
|
||||
copyhooks
|
||||
}
|
||||
function colorpic {
|
||||
|
||||
# Miscellaneous helpers
|
||||
function colorpic() {
|
||||
local picture_url="$1"
|
||||
echo "Colorizing $picture_url"
|
||||
arrow "Colorizing $picture_url"
|
||||
local result_url=$(\curl -F "image=@$picture_url" -H "api-key:$COLORPIC_APIKEY" https://api.deepai.org/api/colorizer -s | jq '.output_url' | strings)
|
||||
echo "Generated $result_url"
|
||||
echo "Display in progress..."
|
||||
eval "\curl -s $result_url | imgcat"
|
||||
success "Generated $result_url"
|
||||
arrow "Display in progress..."
|
||||
eval "\curl --silent $result_url | imgcat"
|
||||
}
|
||||
function brewadd {
|
||||
|
||||
function bookmarkadd() {
|
||||
adhoc lineinfile -a "path=$HOME/Code/bookmarks/README.md insertafter='"$1"' line='* "$2"'"
|
||||
}
|
||||
function rssadd() {
|
||||
adhoc lineinfile -a "path=~/.newsboat/urls line='"$1"'"
|
||||
newsboat
|
||||
}
|
||||
|
||||
# Via https://stackoverflow.com/a/58598185/2309958
|
||||
# capture the output of a command so it can be retrieved with ret
|
||||
function cap () { tee /tmp/capture.out}
|
||||
# return the output of the most recent command that was captured by cap
|
||||
function ret () { \cat /tmp/capture.out }
|
||||
|
||||
# Package / Dependencies management helpers
|
||||
function adhocbis() {
|
||||
local ansible_output=$(adhoc "$*")
|
||||
echo $ansible_output | sed 's/127.0.0.1.*SUCCESS/WOKE/g'
|
||||
}
|
||||
function brewadd() {
|
||||
brew install "$1"
|
||||
ansible 127.0.0.1 -m lineinfile -a "path=~/Brewfile line='brew \"$1\"'"
|
||||
adhoc lineinfile -a "path=~/Brewfile line='brew \"$1\"'"
|
||||
}
|
||||
function pipadd() {
|
||||
pip install "$1"
|
||||
pip freeze >"$HOME/requirements.txt"
|
||||
}
|
||||
function goadd() {
|
||||
adhoc lineinfile -a "path=~/.scripts/godeps.sh line='go get -u -v $1'"
|
||||
go get -u -v "$1"
|
||||
}
|
||||
|
||||
# Make a directory and cd to it
|
||||
function take() {
|
||||
md -p "$@" && cd "${@:$#}"
|
||||
}
|
||||
|
||||
# Date / Time management helpers
|
||||
function endofday() {
|
||||
local planned_end=$(moro status 2>&1 | \grep --extended-regexp --only-matching "Working until ([0-9:]+) will make.*" | uniq | \grep --extended-regexp --only-matching "([0-9]+:[0-9]+)")
|
||||
local max_hour="$planned_end"
|
||||
local min_hour=$(current_time)
|
||||
if [ -z "$planned_end" ]; then
|
||||
local clockout=$(moro report 2>&1 | \grep --extended-regexp --only-matching "Clock out.*([0-9:]+)" | \grep --extended-regexp --only-matching "([0-9]+:[0-9]+)")
|
||||
max_hour="$clockout"
|
||||
fi
|
||||
if is_earlier "$min_hour" "$max_hour"; then
|
||||
arrow "you should keep working, it's only $min_hour while you should work until $max_hour"
|
||||
moro status
|
||||
else
|
||||
warning "you should stop working now because it's later than $max_hour"
|
||||
moro report
|
||||
fi
|
||||
}
|
||||
function convtimetodate() {
|
||||
date -j -f '%H:%M' "$1" +'%Y/%m/%d %H:%M'
|
||||
}
|
||||
function convtimetotimestamp() {
|
||||
date -j -f '%H:%M' "$1" +'%s'
|
||||
}
|
||||
function is_earlier() {
|
||||
local first=$(convtimetotimestamp "$1")
|
||||
local second=$(convtimetotimestamp "$2")
|
||||
if [ "$second" -gt "$first" ]; then
|
||||
true
|
||||
else
|
||||
false
|
||||
fi
|
||||
}
|
||||
|
||||
function dl_stopwords() {
|
||||
curl --location --insecure --silent https://raw.githubusercontent.com/MorganGeek/bookmarks/master/stopwords.txt -o "$HOME/stopwords.txt"
|
||||
}
|
||||
function file_getwords() {
|
||||
dl_stopwords
|
||||
\cat "$1" | tr '[:upper:]' '[:lower:]' | \grep --extended-regexp --only-matching '\w{3,}' | \grep --invert-match --word-regexp --fixed-strings --file="$HOME/stopwords.txt" | \sed 's/s$//g' | \sed 's/ing$//g' | sort_count
|
||||
}
|
||||
function file_getpairs() {
|
||||
dl_stopwords
|
||||
\cat "$1" | filter_pairs
|
||||
}
|
||||
function file_dups() {
|
||||
\cat "$1" | sort_count
|
||||
}
|
||||
function foreach_run() {
|
||||
find . -name "$1" -exec "$2" {} \;
|
||||
}
|
||||
# input should be something like : 1-10 to generate one number between 1 and 10
|
||||
function chance() {
|
||||
[[ $(shuf -i "$1" -n 1) == 1 ]]
|
||||
}
|
||||
function runiflucky() {
|
||||
if chance "1-10"; then
|
||||
if alias "$1" 2>/dev/null || (compgen -A function G "$1" 1>/dev/null && compgen -A function "$1" 1>/dev/null); then
|
||||
eval "$1"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
function aws-login() {
|
||||
profile_list=$(aws-vault list --profiles | fzf --ansi)
|
||||
login_url=$(export AWS_SESSION_TOKEN_TTL=3h && aws-vault login $profile_list -s)
|
||||
echo "$login_url $1"
|
||||
browse "$login_url $1" 1>/dev/null 2>&1 &
|
||||
}
|
||||
function aws-exec() {
|
||||
profile_list=$(aws-vault list --profiles | fzf --ansi)
|
||||
aws-vault exec $profile_list
|
||||
}
|
||||
|
34
dot_zshrc
34
dot_zshrc
@ -16,6 +16,7 @@ fi
|
||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
||||
#
|
||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||
ZSH_COLORIZE_STYLE="monokai"
|
||||
|
||||
@ -30,7 +31,6 @@ POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs command_execution_tim
|
||||
POWERLEVEL9K_SHOW_CHANGESET=true
|
||||
POWERLEVEL9K_CHANGESET_HASH_LENGTH=8
|
||||
|
||||
|
||||
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=''
|
||||
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR=''
|
||||
|
||||
@ -38,13 +38,11 @@ POWERLEVEL9K_TIME_FOREGROUND='245'
|
||||
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND='245'
|
||||
POWERLEVEL9K_STATUS_OK_FOREGROUND='green'
|
||||
POWERLEVEL9k_STATUS_ERROR_FOREGROUND='red'
|
||||
POWERLEVEL9k_STATUS_ERROR_FOREGROUND='red'
|
||||
|
||||
POWERLEVEL9K_TIME_BACKGROUND='clear'
|
||||
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='clear'
|
||||
POWERLEVEL9K_STATUS_OK_BACKGROUND='clear'
|
||||
POWERLEVEL9K_STATUS_ERROR_BACKGROUND='clear'
|
||||
POWERLEVEL9K_STATUS_ERROR_BACKGROUND='clear'
|
||||
POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND='clear'
|
||||
|
||||
# Set list of themes to pick from when loading at random
|
||||
@ -99,7 +97,7 @@ POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND='clear'
|
||||
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(reminder common-aliases extract git sdk zsh-syntax-highlighting zsh-autosuggestions ansible brew colorize docker pipenv pip python terraform aws helm kubectl)
|
||||
plugins=(reminder common-aliases extract git sdk zsh-syntax-highlighting zsh-autosuggestions ansible brew colorize docker pipenv pip python terraform aws helm kubectl fzf alias-finder)
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# User configuration
|
||||
@ -128,9 +126,26 @@ export BW_SESSION=""
|
||||
export JENKINS_URL=""
|
||||
export JENKINS_SECRET=""
|
||||
export JIRA_URL=""
|
||||
export CONFLUENCE_URL=""
|
||||
export PROXY_HOST=""
|
||||
export COLORPIC_APIKEY=""
|
||||
export VAULT_PASSWORD_FILE=""
|
||||
export DEFAULT_BROWSER=${DEFAULT_BROWSER:-'Google Chrome'}
|
||||
export TRELLO_BOARD_URL=""
|
||||
export COMPANY_NAME=""
|
||||
export GIT_PERSONAL_EMAIL=""
|
||||
export GIT_PERSONAL_USER=""
|
||||
export GIT_PRO_EMAIL=""
|
||||
export GIT_PRO_USER=""
|
||||
export GMAIL_APP_USER=""
|
||||
export GMAIL_APP_PASSWORD=""
|
||||
export KINDLE_ACCOUNT_EMAIL="" # e.g : john.doe@kindle.com
|
||||
export PRINCIPAL_ACCOUNT_EMAIL="" # e.g : john.doe@gmail.com
|
||||
export PRINCIPAL_ACCOUNT_FULLNAME="" # e.g : John Doe
|
||||
export BB_TOKEN="" # Bitbucket server PAT (personal access token)
|
||||
export GITHUB_TOKEN="" # GitHub PAT (personal access token)
|
||||
|
||||
source "$HOME/Code/dotfiles/dot_aliases/misc.sh"
|
||||
|
||||
if test -f "$HOME/.scripts/secrets.sh"; then
|
||||
chmod +x "$HOME/.scripts/secrets.sh"
|
||||
@ -148,8 +163,8 @@ eval "$(fasd --init auto)"
|
||||
|
||||
#cm apply
|
||||
|
||||
# check if we have new jira issues
|
||||
istherenewissues
|
||||
# randomly check if we have new jira issues
|
||||
runiflucky "istherenewissues"
|
||||
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
@ -162,11 +177,10 @@ esac
|
||||
export SDKMAN_DIR="$HOME/.sdkman"
|
||||
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||
|
||||
#sdk use java 8.0.202-zulu
|
||||
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
ln -snf /usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin/pip /usr/local/bin/pip3
|
||||
ln -snf /usr/local/lib/python3.9/site-packages/pip /usr/local/bin/pip21
|
||||
ln -snf /usr/local/lib/python3.9/site-packages/pip /usr/local/bin/pip3
|
||||
export PATH="$PATH:/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/bin/:/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin"
|
||||
;;
|
||||
esac
|
||||
@ -178,3 +192,5 @@ export PATH="/usr/local/opt/grep/libexec/gnubin:$GOPATH/bin:$RUSTPATH:$PATH"
|
||||
|
||||
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||
|
||||
source /Users/morganwattiez/.config/broot/launcher/bash/br
|
||||
|
50
private_dot_config/bashtop/bashtop.cfg
Normal file
50
private_dot_config/bashtop/bashtop.cfg
Normal file
@ -0,0 +1,50 @@
|
||||
#? Config file for bashtop v. 0.9.19
|
||||
|
||||
#* Color theme, looks for a .theme file in "$HOME/.config/bashtop/themes" and "$HOME/.config/bashtop/user_themes", "Default" for builtin default theme
|
||||
color_theme="Default"
|
||||
|
||||
#* Update time in milliseconds, increases automatically if set below internal loops processing time, recommended 2000 ms or above for better sample times for graphs
|
||||
update_ms="2500"
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu responsive"
|
||||
#* "cpu lazy" updates sorting over time, "cpu responsive" updates sorting directly
|
||||
proc_sorting="cpu lazy"
|
||||
|
||||
#* Reverse sorting order, "true" or "false"
|
||||
proc_reversed="false"
|
||||
|
||||
#* Show processes as a tree
|
||||
proc_tree="false"
|
||||
|
||||
#* Check cpu temperature, only works if "sensors", "vcgencmd" or "osx-cpu-temp" commands is available
|
||||
check_temp="false"
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable
|
||||
draw_clock="%X"
|
||||
|
||||
#* Update main ui when menus are showing, set this to false if the menus is flickering too much for comfort
|
||||
background_update="true"
|
||||
|
||||
#* Custom cpu model name, empty string to disable
|
||||
custom_cpu_name=""
|
||||
|
||||
#* Enable error logging to "$HOME/.config/bashtop/error.log", "true" or "false"
|
||||
error_logging="true"
|
||||
|
||||
#* Show color gradient in process list, "true" or "false"
|
||||
proc_gradient="true"
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power
|
||||
proc_per_core="false"
|
||||
|
||||
#* Optional filter for shown disks, should be names of mountpoints, "root" replaces "/", separate multiple values with space
|
||||
disks_filter=""
|
||||
|
||||
#* Enable check for new version from github.com/aristocratos/bashtop at start
|
||||
update_check="true"
|
||||
|
||||
#* Enable graphs with double the horizontal resolution, increases cpu usage
|
||||
hires_graphs="false"
|
||||
|
||||
#* Enable the use of psutil python3 module for data collection, default on OSX
|
||||
use_psutil="true"
|
238
private_dot_config/broot/conf.toml
Normal file
238
private_dot_config/broot/conf.toml
Normal file
@ -0,0 +1,238 @@
|
||||
|
||||
###############################################################
|
||||
# This configuration file lets you
|
||||
# - define new commands
|
||||
# - change the shortcut or triggering keys of built-in verbs
|
||||
# - change the colors
|
||||
# - set default values for flags
|
||||
# - set special behaviors on specific paths
|
||||
#
|
||||
# Configuration documentation is available at
|
||||
# https://dystroy.org/broot
|
||||
###############################################################
|
||||
|
||||
###############################################################
|
||||
# Default flags
|
||||
# You can set up flags you want broot to start with by
|
||||
# default, for example `default_flags="ihp"` if you usually want
|
||||
# to see hidden and gitignored files and the permissions (then
|
||||
# if you don't want the hidden files you can launch `br -H`)
|
||||
# A popular flag is the `g` one which displays git related info.
|
||||
#
|
||||
default_flags = ""
|
||||
|
||||
###############################################################
|
||||
# Special paths
|
||||
# If some paths must be handled specially, uncomment (and change
|
||||
# this section as per the examples
|
||||
#
|
||||
# [special-paths]
|
||||
# "/media/slow-backup-disk" = "no-enter"
|
||||
# "/home/dys/useless" = "hide"
|
||||
# "/home/dys/my-link-I-want-to-explore" = "enter"
|
||||
|
||||
###############################################################
|
||||
# Date/Time format
|
||||
# If you want to change the format for date/time, uncomment the
|
||||
# following line and change it according to
|
||||
# https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html
|
||||
#
|
||||
# date_time_format = "%Y/%m/%d %R"
|
||||
|
||||
###############################################################
|
||||
# Column order
|
||||
# cols_order, if specified, must be a permutation of "gbpdscn"
|
||||
# where every char denotes a column:
|
||||
# g : Git file info
|
||||
# b : branch (shows the depth and parent in the tree)
|
||||
# p : permissions (mode, user, group)
|
||||
# d : last modification date
|
||||
# s : size (with size bar when sorting)
|
||||
# c : count, number of files in directories
|
||||
# n : file name
|
||||
#
|
||||
# cols_order = "gbdscn"
|
||||
|
||||
###############################################################
|
||||
# Verbs and shortcuts
|
||||
# You can define your own commands which would be applied to
|
||||
# the selection.
|
||||
#
|
||||
# Exemple 1: launching `tail -n` on the selected file (leaving broot)
|
||||
# [[verbs]]
|
||||
# name = "tail_lines"
|
||||
# invocation = "tl {lines_count}"
|
||||
# execution = "tail -f -n {lines_count} {file}"
|
||||
#
|
||||
# Exemple 2: creating a new file without leaving broot
|
||||
# [[verbs]]
|
||||
# name = "touch"
|
||||
# invocation = "touch {new_file}"
|
||||
# execution = "touch {directory}/{new_file}"
|
||||
# leave_broot = false
|
||||
|
||||
# If $EDITOR isn't set on your computer, you should either set it using
|
||||
# something similar to
|
||||
# export EDITOR=/usr/bin/nvim
|
||||
# or just replace it with your editor of choice in the 'execution'
|
||||
# pattern.
|
||||
# If your editor is able to open a file on a specific line, use {line}
|
||||
# so that you may jump directly at the right line from a preview.
|
||||
# Example:
|
||||
# execution = "/usr/bin/nvim +{line} {file}"
|
||||
|
||||
[[verbs]]
|
||||
invocation = "edit"
|
||||
key = "F2"
|
||||
shortcut = "e"
|
||||
execution = "$EDITOR {file}"
|
||||
leave_broot = false
|
||||
|
||||
[[verbs]]
|
||||
invocation = "create {subpath}"
|
||||
execution = "$EDITOR {directory}/{subpath}"
|
||||
leave_broot = false
|
||||
|
||||
[[verbs]]
|
||||
invocation = "git_diff"
|
||||
shortcut = "gd"
|
||||
leave_broot = false
|
||||
execution = "git difftool -y {file}"
|
||||
|
||||
# If $PAGER isn't set on your computer, you should either set it
|
||||
# or just replace it with your viewer of choice in the 'execution'
|
||||
# pattern.
|
||||
# Example:
|
||||
# execution = "less {file}"
|
||||
[[verbs]]
|
||||
name = "view"
|
||||
invocation = "view"
|
||||
execution = "$PAGER {file}"
|
||||
leave_broot = false
|
||||
|
||||
# A popular set of shorctuts for going up and down:
|
||||
#
|
||||
# [[verbs]]
|
||||
# key = "ctrl-j"
|
||||
# execution = ":line_down"
|
||||
#
|
||||
# [[verbs]]
|
||||
# key = "ctrl-k"
|
||||
# execution = ":line_up"
|
||||
#
|
||||
# [[verbs]]
|
||||
# key = "ctrl-d"
|
||||
# execution = ":page_down"
|
||||
#
|
||||
# [[verbs]]
|
||||
# key = "ctrl-u"
|
||||
# execution = ":page_up"
|
||||
# [[verbs]]
|
||||
# key = "home"
|
||||
# execution = ":select_first"
|
||||
# [[verbs]]
|
||||
# key = "end"
|
||||
# execution = ":select_last"
|
||||
|
||||
# If you develop using git, you might like to often switch
|
||||
# to the "git status" filter:
|
||||
# [[verbs]]
|
||||
# key = "ctrl-g"
|
||||
# execution = ":toggle_git_status"
|
||||
|
||||
# You can reproduce the bindings of Norton Commander
|
||||
# on copying or moving to the other panel:
|
||||
#
|
||||
# [[verbs]]
|
||||
# key = "F5"
|
||||
# execution = ":copy_to_panel"
|
||||
#
|
||||
# [[verbs]]
|
||||
# key = "F6"
|
||||
# execution = ":move_to_panel"
|
||||
|
||||
|
||||
###############################################################
|
||||
# Skin
|
||||
# If you want to change the colors of broot,
|
||||
# uncomment the following bloc and start messing
|
||||
# with the various values.
|
||||
#
|
||||
# [skin]
|
||||
# default = "gray(23) none / gray(20) none"
|
||||
# tree = "ansi(94) None / gray(3) None"
|
||||
# file = "gray(20) None / gray(15) None"
|
||||
# directory = "ansi(208) None Bold / ansi(172) None bold"
|
||||
# exe = "Cyan None"
|
||||
# link = "Magenta None"
|
||||
# pruning = "gray(12) None Italic"
|
||||
# perm__ = "gray(5) None"
|
||||
# perm_r = "ansi(94) None"
|
||||
# perm_w = "ansi(132) None"
|
||||
# perm_x = "ansi(65) None"
|
||||
# owner = "ansi(138) None"
|
||||
# group = "ansi(131) None"
|
||||
# count = "ansi(136) gray(3)"
|
||||
# dates = "ansi(66) None"
|
||||
# sparse = "ansi(214) None"
|
||||
# content_extract = "ansi(29) None"
|
||||
# content_match = "ansi(34) None"
|
||||
# git_branch = "ansi(229) None"
|
||||
# git_insertions = "ansi(28) None"
|
||||
# git_deletions = "ansi(160) None"
|
||||
# git_status_current = "gray(5) None"
|
||||
# git_status_modified = "ansi(28) None"
|
||||
# git_status_new = "ansi(94) None Bold"
|
||||
# git_status_ignored = "gray(17) None"
|
||||
# git_status_conflicted = "ansi(88) None"
|
||||
# git_status_other = "ansi(88) None"
|
||||
# selected_line = "None gray(5) / None gray(4)"
|
||||
# char_match = "Yellow None"
|
||||
# file_error = "Red None"
|
||||
# flag_label = "gray(15) None"
|
||||
# flag_value = "ansi(208) None Bold"
|
||||
# input = "White None / gray(15) gray(2)"
|
||||
# status_error = "gray(22) ansi(124)"
|
||||
# status_job = "ansi(220) gray(5)"
|
||||
# status_normal = "gray(20) gray(3) / gray(2) gray(2)"
|
||||
# status_italic = "ansi(208) gray(3) / gray(2) gray(2)"
|
||||
# status_bold = "ansi(208) gray(3) Bold / gray(2) gray(2)"
|
||||
# status_code = "ansi(229) gray(3) / gray(2) gray(2)"
|
||||
# status_ellipsis = "gray(19) gray(1) / gray(2) gray(2)"
|
||||
# purpose_normal = "gray(20) gray(2)"
|
||||
# purpose_italic = "ansi(178) gray(2)"
|
||||
# purpose_bold = "ansi(178) gray(2) Bold"
|
||||
# purpose_ellipsis = "gray(20) gray(2)"
|
||||
# scrollbar_track = "gray(7) None / gray(4) None"
|
||||
# scrollbar_thumb = "gray(22) None / gray(14) None"
|
||||
# help_paragraph = "gray(20) None"
|
||||
# help_bold = "ansi(208) None Bold"
|
||||
# help_italic = "ansi(166) None"
|
||||
# help_code = "gray(21) gray(3)"
|
||||
# help_headers = "ansi(208) None"
|
||||
# help_table_border = "ansi(239) None"
|
||||
# preview = "gray(20) gray(1) / gray(18) gray(2)"
|
||||
# preview_line_number = "gray(12) gray(3)"
|
||||
# preview_match = "None ansi(29)"
|
||||
# hex_null = "gray(11) None"
|
||||
# hex_ascii_graphic = "gray(18) None"
|
||||
# hex_ascii_whitespace = "ansi(143) None"
|
||||
# hex_ascii_other = "ansi(215) None"
|
||||
# hex_non_ascii = "ansi(167) None"
|
||||
|
||||
# You may find explanations and other skins on
|
||||
# https://dystroy.org/broot/skins
|
||||
# for example a skin suitable for white backgrounds
|
||||
|
||||
|
||||
###############################################################
|
||||
# File Extension Colors
|
||||
#
|
||||
# uncomment and modify the next section if you want to color
|
||||
# file name depending on their extension
|
||||
#
|
||||
# [ext-colors]
|
||||
# png = "rgb(255, 128, 75)"
|
||||
# rs = "yellow"
|
||||
|
||||
|
8
private_dot_config/gh/config.yml
Normal file
8
private_dot_config/gh/config.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
# What protocol to use when performing git operations. Supported values: ssh, https
|
||||
git_protocol: https
|
||||
# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment.
|
||||
editor:
|
||||
# Aliases allow you to create nicknames for gh commands
|
||||
aliases:
|
||||
co: pr checkout
|
26
private_dot_config/htop/htoprc
Normal file
26
private_dot_config/htop/htoprc
Normal file
@ -0,0 +1,26 @@
|
||||
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||
# The parser is also very primitive, and not human-friendly.
|
||||
fields=0 48 17 18 38 39 2 46 47 49 1
|
||||
sort_key=46
|
||||
sort_direction=1
|
||||
hide_threads=0
|
||||
hide_kernel_threads=1
|
||||
hide_userland_threads=0
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
tree_view=0
|
||||
header_margin=1
|
||||
detailed_cpu_time=0
|
||||
cpu_count_from_zero=0
|
||||
update_process_names=0
|
||||
account_guest_in_cpu_meter=0
|
||||
color_scheme=0
|
||||
delay=15
|
||||
left_meters=LeftCPUs2 Memory Swap
|
||||
left_meter_modes=1 1 1
|
||||
right_meters=RightCPUs2 Tasks LoadAverage Uptime
|
||||
right_meter_modes=1 2 2 2
|
761
private_dot_config/neofetch/config.conf
Normal file
761
private_dot_config/neofetch/config.conf
Normal file
@ -0,0 +1,761 @@
|
||||
# See this wiki page for more info:
|
||||
# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
|
||||
print_info() {
|
||||
info title
|
||||
info underline
|
||||
|
||||
info "OS" distro
|
||||
info "Host" model
|
||||
info "Kernel" kernel
|
||||
info "Uptime" uptime
|
||||
info "Packages" packages
|
||||
info "Shell" shell
|
||||
info "Resolution" resolution
|
||||
info "DE" de
|
||||
info "WM" wm
|
||||
info "WM Theme" wm_theme
|
||||
info "Theme" theme
|
||||
info "Icons" icons
|
||||
info "Terminal" term
|
||||
info "Terminal Font" term_font
|
||||
info "CPU" cpu
|
||||
info "GPU" gpu
|
||||
info "Memory" memory
|
||||
|
||||
# info "GPU Driver" gpu_driver # Linux/macOS only
|
||||
# info "CPU Usage" cpu_usage
|
||||
# info "Disk" disk
|
||||
# info "Battery" battery
|
||||
# info "Font" font
|
||||
# info "Song" song
|
||||
# [[ $player ]] && prin "Music Player" "$player"
|
||||
# info "Local IP" local_ip
|
||||
# info "Public IP" public_ip
|
||||
# info "Users" users
|
||||
# info "Locale" locale # This only works on glibc systems.
|
||||
|
||||
info cols
|
||||
}
|
||||
|
||||
|
||||
# Kernel
|
||||
|
||||
|
||||
# Shorten the output of the kernel function.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --kernel_shorthand
|
||||
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
|
||||
#
|
||||
# Example:
|
||||
# on: '4.8.9-1-ARCH'
|
||||
# off: 'Linux 4.8.9-1-ARCH'
|
||||
kernel_shorthand="on"
|
||||
|
||||
|
||||
# Distro
|
||||
|
||||
|
||||
# Shorten the output of the distro function
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off', 'tiny'
|
||||
# Flag: --distro_shorthand
|
||||
# Supports: Everything except Windows and Haiku
|
||||
distro_shorthand="off"
|
||||
|
||||
# Show/Hide OS Architecture.
|
||||
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --os_arch
|
||||
#
|
||||
# Example:
|
||||
# on: 'Arch Linux x86_64'
|
||||
# off: 'Arch Linux'
|
||||
os_arch="on"
|
||||
|
||||
|
||||
# Uptime
|
||||
|
||||
|
||||
# Shorten the output of the uptime function
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off', 'tiny'
|
||||
# Flag: --uptime_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: '2 days, 10 hours, 3 mins'
|
||||
# off: '2 days, 10 hours, 3 minutes'
|
||||
# tiny: '2d 10h 3m'
|
||||
uptime_shorthand="on"
|
||||
|
||||
|
||||
# Memory
|
||||
|
||||
|
||||
# Show memory pecentage in output.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --memory_percent
|
||||
#
|
||||
# Example:
|
||||
# on: '1801MiB / 7881MiB (22%)'
|
||||
# off: '1801MiB / 7881MiB'
|
||||
memory_percent="off"
|
||||
|
||||
|
||||
# Packages
|
||||
|
||||
|
||||
# Show/Hide Package Manager names.
|
||||
#
|
||||
# Default: 'tiny'
|
||||
# Values: 'on', 'tiny' 'off'
|
||||
# Flag: --package_managers
|
||||
#
|
||||
# Example:
|
||||
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
|
||||
# tiny: '908 (pacman, flatpak, snap)'
|
||||
# off: '908'
|
||||
package_managers="on"
|
||||
|
||||
|
||||
# Shell
|
||||
|
||||
|
||||
# Show the path to $SHELL
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --shell_path
|
||||
#
|
||||
# Example:
|
||||
# on: '/bin/bash'
|
||||
# off: 'bash'
|
||||
shell_path="off"
|
||||
|
||||
# Show $SHELL version
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --shell_version
|
||||
#
|
||||
# Example:
|
||||
# on: 'bash 4.4.5'
|
||||
# off: 'bash'
|
||||
shell_version="on"
|
||||
|
||||
|
||||
# CPU
|
||||
|
||||
|
||||
# CPU speed type
|
||||
#
|
||||
# Default: 'bios_limit'
|
||||
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
|
||||
# Flag: --speed_type
|
||||
# Supports: Linux with 'cpufreq'
|
||||
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
|
||||
speed_type="bios_limit"
|
||||
|
||||
# CPU speed shorthand
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'.
|
||||
# Flag: --speed_shorthand
|
||||
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
|
||||
#
|
||||
# Example:
|
||||
# on: 'i7-6500U (4) @ 3.1GHz'
|
||||
# off: 'i7-6500U (4) @ 3.100GHz'
|
||||
speed_shorthand="off"
|
||||
|
||||
# Enable/Disable CPU brand in output.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --cpu_brand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Intel i7-6500U'
|
||||
# off: 'i7-6500U (4)'
|
||||
cpu_brand="on"
|
||||
|
||||
# CPU Speed
|
||||
# Hide/Show CPU speed.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --cpu_speed
|
||||
#
|
||||
# Example:
|
||||
# on: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||
# off: 'Intel i7-6500U (4)'
|
||||
cpu_speed="on"
|
||||
|
||||
# CPU Cores
|
||||
# Display CPU cores in output
|
||||
#
|
||||
# Default: 'logical'
|
||||
# Values: 'logical', 'physical', 'off'
|
||||
# Flag: --cpu_cores
|
||||
# Support: 'physical' doesn't work on BSD.
|
||||
#
|
||||
# Example:
|
||||
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
|
||||
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
|
||||
# off: 'Intel i7-6500U @ 3.1GHz'
|
||||
cpu_cores="logical"
|
||||
|
||||
# CPU Temperature
|
||||
# Hide/Show CPU temperature.
|
||||
# Note the temperature is added to the regular CPU function.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'C', 'F', 'off'
|
||||
# Flag: --cpu_temp
|
||||
# Supports: Linux, BSD
|
||||
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
|
||||
# coretemp kernel module. This only supports newer Intel processors.
|
||||
#
|
||||
# Example:
|
||||
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
|
||||
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
|
||||
# off: 'Intel i7-6500U (4) @ 3.1GHz'
|
||||
cpu_temp="off"
|
||||
|
||||
|
||||
# GPU
|
||||
|
||||
|
||||
# Enable/Disable GPU Brand
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gpu_brand
|
||||
#
|
||||
# Example:
|
||||
# on: 'AMD HD 7950'
|
||||
# off: 'HD 7950'
|
||||
gpu_brand="on"
|
||||
|
||||
# Which GPU to display
|
||||
#
|
||||
# Default: 'all'
|
||||
# Values: 'all', 'dedicated', 'integrated'
|
||||
# Flag: --gpu_type
|
||||
# Supports: Linux
|
||||
#
|
||||
# Example:
|
||||
# all:
|
||||
# GPU1: AMD HD 7950
|
||||
# GPU2: Intel Integrated Graphics
|
||||
#
|
||||
# dedicated:
|
||||
# GPU1: AMD HD 7950
|
||||
#
|
||||
# integrated:
|
||||
# GPU1: Intel Integrated Graphics
|
||||
gpu_type="all"
|
||||
|
||||
|
||||
# Resolution
|
||||
|
||||
|
||||
# Display refresh rate next to each monitor
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --refresh_rate
|
||||
# Supports: Doesn't work on Windows.
|
||||
#
|
||||
# Example:
|
||||
# on: '1920x1080 @ 60Hz'
|
||||
# off: '1920x1080'
|
||||
refresh_rate="off"
|
||||
|
||||
|
||||
# Gtk Theme / Icons / Font
|
||||
|
||||
|
||||
# Shorten output of GTK Theme / Icons / Font
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix, Adwaita'
|
||||
# off: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
gtk_shorthand="off"
|
||||
|
||||
|
||||
# Enable/Disable gtk2 Theme / Icons / Font
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk2
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
# off: 'Adwaita [GTK3]'
|
||||
gtk2="on"
|
||||
|
||||
# Enable/Disable gtk3 Theme / Icons / Font
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --gtk3
|
||||
#
|
||||
# Example:
|
||||
# on: 'Numix [GTK2], Adwaita [GTK3]'
|
||||
# off: 'Numix [GTK2]'
|
||||
gtk3="on"
|
||||
|
||||
|
||||
# IP Address
|
||||
|
||||
|
||||
# Website to ping for the public IP
|
||||
#
|
||||
# Default: 'http://ident.me'
|
||||
# Values: 'url'
|
||||
# Flag: --ip_host
|
||||
public_ip_host="http://ident.me"
|
||||
|
||||
# Public IP timeout.
|
||||
#
|
||||
# Default: '2'
|
||||
# Values: 'int'
|
||||
# Flag: --ip_timeout
|
||||
public_ip_timeout=2
|
||||
|
||||
|
||||
# Disk
|
||||
|
||||
|
||||
# Which disks to display.
|
||||
# The values can be any /dev/sdXX, mount point or directory.
|
||||
# NOTE: By default we only show the disk info for '/'.
|
||||
#
|
||||
# Default: '/'
|
||||
# Values: '/', '/dev/sdXX', '/path/to/drive'.
|
||||
# Flag: --disk_show
|
||||
#
|
||||
# Example:
|
||||
# disk_show=('/' '/dev/sdb1'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
|
||||
#
|
||||
# disk_show=('/'):
|
||||
# 'Disk (/): 74G / 118G (66%)'
|
||||
#
|
||||
disk_show=('/')
|
||||
|
||||
# Disk subtitle.
|
||||
# What to append to the Disk subtitle.
|
||||
#
|
||||
# Default: 'mount'
|
||||
# Values: 'mount', 'name', 'dir'
|
||||
# Flag: --disk_subtitle
|
||||
#
|
||||
# Example:
|
||||
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
|
||||
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
|
||||
#
|
||||
# mount: 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
|
||||
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
|
||||
#
|
||||
# dir: 'Disk (/): 74G / 118G (66%)'
|
||||
# 'Disk (Local Disk): 74G / 118G (66%)'
|
||||
# 'Disk (Videos): 74G / 118G (66%)'
|
||||
disk_subtitle="mount"
|
||||
|
||||
|
||||
# Song
|
||||
|
||||
|
||||
# Manually specify a music player.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'player-name'
|
||||
# Flag: --music_player
|
||||
#
|
||||
# Available values for 'player-name':
|
||||
#
|
||||
# amarok
|
||||
# audacious
|
||||
# banshee
|
||||
# bluemindo
|
||||
# clementine
|
||||
# cmus
|
||||
# deadbeef
|
||||
# deepin-music
|
||||
# dragon
|
||||
# elisa
|
||||
# exaile
|
||||
# gnome-music
|
||||
# gmusicbrowser
|
||||
# guayadeque
|
||||
# iTunes
|
||||
# juk
|
||||
# lollypop
|
||||
# mocp
|
||||
# mopidy
|
||||
# mpd
|
||||
# netease-cloud-music
|
||||
# pogo
|
||||
# pragha
|
||||
# qmmp
|
||||
# quodlibet
|
||||
# rhythmbox
|
||||
# sayonara
|
||||
# smplayer
|
||||
# spotify
|
||||
# tomahawk
|
||||
# vlc
|
||||
# xmms2d
|
||||
# yarock
|
||||
music_player="auto"
|
||||
|
||||
# Format to display song information.
|
||||
#
|
||||
# Default: '%artist% - %album% - %title%'
|
||||
# Values: '%artist%', '%album%', '%title%'
|
||||
# Flag: --song_format
|
||||
#
|
||||
# Example:
|
||||
# default: 'Song: Jet - Get Born - Sgt Major'
|
||||
song_format="%artist% - %album% - %title%"
|
||||
|
||||
# Print the Artist, Album and Title on separate lines
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --song_shorthand
|
||||
#
|
||||
# Example:
|
||||
# on: 'Artist: The Fratellis'
|
||||
# 'Album: Costello Music'
|
||||
# 'Song: Chelsea Dagger'
|
||||
#
|
||||
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
|
||||
song_shorthand="off"
|
||||
|
||||
# 'mpc' arguments (specify a host, password etc).
|
||||
#
|
||||
# Default: ''
|
||||
# Example: mpc_args=(-h HOST -P PASSWORD)
|
||||
mpc_args=()
|
||||
|
||||
|
||||
# Text Colors
|
||||
|
||||
|
||||
# Text Colors
|
||||
#
|
||||
# Default: 'distro'
|
||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||
# Flag: --colors
|
||||
#
|
||||
# Each number represents a different part of the text in
|
||||
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
|
||||
#
|
||||
# Example:
|
||||
# colors=(distro) - Text is colored based on Distro colors.
|
||||
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
|
||||
colors=(distro)
|
||||
|
||||
|
||||
# Text Options
|
||||
|
||||
|
||||
# Toggle bold text
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --bold
|
||||
bold="on"
|
||||
|
||||
# Enable/Disable Underline
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --underline
|
||||
underline_enabled="on"
|
||||
|
||||
# Underline character
|
||||
#
|
||||
# Default: '-'
|
||||
# Values: 'string'
|
||||
# Flag: --underline_char
|
||||
underline_char="-"
|
||||
|
||||
|
||||
# Info Separator
|
||||
# Replace the default separator with the specified string.
|
||||
#
|
||||
# Default: ':'
|
||||
# Flag: --separator
|
||||
#
|
||||
# Example:
|
||||
# separator="->": 'Shell-> bash'
|
||||
# separator=" =": 'WM = dwm'
|
||||
separator=":"
|
||||
|
||||
|
||||
# Color Blocks
|
||||
|
||||
|
||||
# Color block range
|
||||
# The range of colors to print.
|
||||
#
|
||||
# Default: '0', '7'
|
||||
# Values: 'num'
|
||||
# Flag: --block_range
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# Display colors 0-7 in the blocks. (8 colors)
|
||||
# neofetch --block_range 0 7
|
||||
#
|
||||
# Display colors 0-15 in the blocks. (16 colors)
|
||||
# neofetch --block_range 0 15
|
||||
block_range=(0 7)
|
||||
|
||||
# Toggle color blocks
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --color_blocks
|
||||
color_blocks="on"
|
||||
|
||||
# Color block width in spaces
|
||||
#
|
||||
# Default: '3'
|
||||
# Values: 'num'
|
||||
# Flag: --block_width
|
||||
block_width=3
|
||||
|
||||
# Color block height in lines
|
||||
#
|
||||
# Default: '1'
|
||||
# Values: 'num'
|
||||
# Flag: --block_height
|
||||
block_height=1
|
||||
|
||||
|
||||
# Progress Bars
|
||||
|
||||
|
||||
# Bar characters
|
||||
#
|
||||
# Default: '-', '='
|
||||
# Values: 'string', 'string'
|
||||
# Flag: --bar_char
|
||||
#
|
||||
# Example:
|
||||
# neofetch --bar_char 'elapsed' 'total'
|
||||
# neofetch --bar_char '-' '='
|
||||
bar_char_elapsed="-"
|
||||
bar_char_total="="
|
||||
|
||||
# Toggle Bar border
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --bar_border
|
||||
bar_border="on"
|
||||
|
||||
# Progress bar length in spaces
|
||||
# Number of chars long to make the progress bars.
|
||||
#
|
||||
# Default: '15'
|
||||
# Values: 'num'
|
||||
# Flag: --bar_length
|
||||
bar_length=15
|
||||
|
||||
# Progress bar colors
|
||||
# When set to distro, uses your distro's logo colors.
|
||||
#
|
||||
# Default: 'distro', 'distro'
|
||||
# Values: 'distro', 'num'
|
||||
# Flag: --bar_colors
|
||||
#
|
||||
# Example:
|
||||
# neofetch --bar_colors 3 4
|
||||
# neofetch --bar_colors distro 5
|
||||
bar_color_elapsed="distro"
|
||||
bar_color_total="distro"
|
||||
|
||||
|
||||
# Info display
|
||||
# Display a bar with the info.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'bar', 'infobar', 'barinfo', 'off'
|
||||
# Flags: --cpu_display
|
||||
# --memory_display
|
||||
# --battery_display
|
||||
# --disk_display
|
||||
#
|
||||
# Example:
|
||||
# bar: '[---=======]'
|
||||
# infobar: 'info [---=======]'
|
||||
# barinfo: '[---=======] info'
|
||||
# off: 'info'
|
||||
cpu_display="off"
|
||||
memory_display="off"
|
||||
battery_display="off"
|
||||
disk_display="off"
|
||||
|
||||
|
||||
# Backend Settings
|
||||
|
||||
|
||||
# Image backend.
|
||||
#
|
||||
# Default: 'ascii'
|
||||
# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
|
||||
# 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
|
||||
# Flag: --backend
|
||||
image_backend="ascii"
|
||||
|
||||
# Image Source
|
||||
#
|
||||
# Which image or ascii file to display.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
|
||||
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
|
||||
# Flag: --source
|
||||
#
|
||||
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
|
||||
# In ascii mode, distro ascii art will be used and in an image mode, your
|
||||
# wallpaper will be used.
|
||||
image_source="auto"
|
||||
|
||||
|
||||
# Ascii Options
|
||||
|
||||
|
||||
# Ascii distro
|
||||
# Which distro's ascii art to display.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', 'distro_name'
|
||||
# Flag: --ascii_distro
|
||||
#
|
||||
# NOTE: Arch and Ubuntu have 'old' logo variants.
|
||||
# Change this to 'arch_old' or 'ubuntu_old' to use the old logos.
|
||||
# NOTE: Ubuntu has flavor variants.
|
||||
# Change this to 'Lubuntu', 'Xubuntu', 'Ubuntu-GNOME' or 'Ubuntu-Budgie' to use the flavors.
|
||||
# NOTE: Arch, Crux and Gentoo have a smaller logo variant.
|
||||
# Change this to 'arch_small', 'crux_small' or 'gentoo_small' to use the small logos.
|
||||
ascii_distro="auto"
|
||||
|
||||
# Ascii Colors
|
||||
#
|
||||
# Default: 'distro'
|
||||
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
|
||||
# Flag: --ascii_colors
|
||||
#
|
||||
# Example:
|
||||
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
|
||||
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
|
||||
ascii_colors=(distro)
|
||||
|
||||
# Bold ascii logo
|
||||
# Whether or not to bold the ascii logo.
|
||||
#
|
||||
# Default: 'on'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --ascii_bold
|
||||
ascii_bold="on"
|
||||
|
||||
|
||||
# Image Options
|
||||
|
||||
|
||||
# Image loop
|
||||
# Setting this to on will make neofetch redraw the image constantly until
|
||||
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
|
||||
#
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
# Flag: --loop
|
||||
image_loop="off"
|
||||
|
||||
# Thumbnail directory
|
||||
#
|
||||
# Default: '~/.cache/thumbnails/neofetch'
|
||||
# Values: 'dir'
|
||||
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
||||
|
||||
# Crop mode
|
||||
#
|
||||
# Default: 'normal'
|
||||
# Values: 'normal', 'fit', 'fill'
|
||||
# Flag: --crop_mode
|
||||
#
|
||||
# See this wiki page to learn about the fit and fill options.
|
||||
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
|
||||
crop_mode="normal"
|
||||
|
||||
# Crop offset
|
||||
# Note: Only affects 'normal' crop mode.
|
||||
#
|
||||
# Default: 'center'
|
||||
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
|
||||
# 'east', 'southwest', 'south', 'southeast'
|
||||
# Flag: --crop_offset
|
||||
crop_offset="center"
|
||||
|
||||
# Image size
|
||||
# The image is half the terminal width by default.
|
||||
#
|
||||
# Default: 'auto'
|
||||
# Values: 'auto', '00px', '00%', 'none'
|
||||
# Flags: --image_size
|
||||
# --size
|
||||
image_size="auto"
|
||||
|
||||
# Gap between image and text
|
||||
#
|
||||
# Default: '3'
|
||||
# Values: 'num', '-num'
|
||||
# Flag: --gap
|
||||
gap=3
|
||||
|
||||
# Image offsets
|
||||
# Only works with the w3m backend.
|
||||
#
|
||||
# Default: '0'
|
||||
# Values: 'px'
|
||||
# Flags: --xoffset
|
||||
# --yoffset
|
||||
yoffset=0
|
||||
xoffset=0
|
||||
|
||||
# Image background color
|
||||
# Only works with the w3m backend.
|
||||
#
|
||||
# Default: ''
|
||||
# Values: 'color', 'blue'
|
||||
# Flag: --bg_color
|
||||
background_color=
|
||||
|
||||
|
||||
# Misc Options
|
||||
|
||||
# Stdout mode
|
||||
# Turn off all colors and disables image backend (ASCII/Image).
|
||||
# Useful for piping into another command.
|
||||
# Default: 'off'
|
||||
# Values: 'on', 'off'
|
||||
stdout="off"
|
102
private_dot_config/wtf/config.yml
Normal file
102
private_dot_config/wtf/config.yml
Normal file
@ -0,0 +1,102 @@
|
||||
---
|
||||
wtf:
|
||||
colors:
|
||||
border:
|
||||
focusable: darkslateblue
|
||||
focused: orange
|
||||
normal: gray
|
||||
grid:
|
||||
columns: [32, 32, 32, 32, 90]
|
||||
rows: [10, 10, 10, 4, 4, 90]
|
||||
refreshInterval: 1
|
||||
mods:
|
||||
clocks_a:
|
||||
colors:
|
||||
rows:
|
||||
even: lightblue
|
||||
odd: white
|
||||
enabled: true
|
||||
locations:
|
||||
Vancouver: America/Vancouver
|
||||
Toronto: America/Toronto
|
||||
position:
|
||||
top: 0
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
sort: alphabetical
|
||||
title: Clocks A
|
||||
type: clocks
|
||||
clocks_b:
|
||||
colors:
|
||||
rows:
|
||||
even: lightblue
|
||||
odd: white
|
||||
enabled: true
|
||||
locations:
|
||||
Avignon: Europe/Paris
|
||||
Barcelona: Europe/Madrid
|
||||
Dubai: Asia/Dubai
|
||||
position:
|
||||
top: 0
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
sort: alphabetical
|
||||
title: Clocks B
|
||||
type: clocks
|
||||
feedreader:
|
||||
enabled: true
|
||||
feeds:
|
||||
- http://wtfutil.com/blog/index.xml
|
||||
feedLimit: 10
|
||||
position:
|
||||
top: 1
|
||||
left: 1
|
||||
width: 2
|
||||
height: 1
|
||||
updateInterval: 14400
|
||||
ipinfo:
|
||||
colors:
|
||||
name: lightblue
|
||||
value: white
|
||||
enabled: true
|
||||
position:
|
||||
top: 2
|
||||
left: 1
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 150
|
||||
power:
|
||||
enabled: true
|
||||
position:
|
||||
top: 2
|
||||
left: 2
|
||||
height: 1
|
||||
width: 1
|
||||
refreshInterval: 15
|
||||
title: ⚡️
|
||||
textfile:
|
||||
enabled: true
|
||||
filePath: ~/.config/wtf/config.yml
|
||||
format: true
|
||||
position:
|
||||
top: 0
|
||||
left: 0
|
||||
height: 4
|
||||
width: 1
|
||||
refreshInterval: 30
|
||||
wrapText: false
|
||||
uptime:
|
||||
args: ['']
|
||||
cmd: uptime
|
||||
enabled: true
|
||||
position:
|
||||
top: 3
|
||||
left: 1
|
||||
height: 1
|
||||
width: 2
|
||||
refreshInterval: 30
|
||||
type: cmdrunner
|
30
private_dot_config/yamllint/config
Normal file
30
private_dot_config/yamllint/config
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
|
||||
extends: default
|
||||
|
||||
rules:
|
||||
braces:
|
||||
level: warning
|
||||
max-spaces-inside: 1
|
||||
brackets:
|
||||
level: warning
|
||||
max-spaces-inside: 1
|
||||
colons:
|
||||
level: warning
|
||||
commas:
|
||||
level: warning
|
||||
comments: disable
|
||||
comments-indentation: disable
|
||||
document-start: disable
|
||||
empty-lines:
|
||||
level: warning
|
||||
hyphens:
|
||||
level: warning
|
||||
indentation:
|
||||
level: warning
|
||||
indent-sequences: consistent
|
||||
line-length:
|
||||
level: warning
|
||||
max: 120
|
||||
allow-non-breakable-inline-mappings: true
|
||||
truthy: disable
|
1
private_dot_newsboat/config
Normal file
1
private_dot_newsboat/config
Normal file
@ -0,0 +1 @@
|
||||
auto-reload yes
|
24
private_dot_newsboat/urls
Normal file
24
private_dot_newsboat/urls
Normal file
@ -0,0 +1,24 @@
|
||||
https://sebsauvage.net/links/?do=rss
|
||||
https://opensource.com/feed
|
||||
https://lobste.rs/rss
|
||||
https://korben.info/feed
|
||||
https://hnrss.org/newest
|
||||
https://morss.it/:items=%7C%7C*[class=link]/https://hckrnews.com/
|
||||
https://ma.ttias.be/cronweekly/index.xml
|
||||
https://www.geekzone.fr/feed/les-demons-du-midi/
|
||||
https://lehollandaisvolant.net/rss.php
|
||||
https://feeds.feedburner.com/se-radio
|
||||
https://softwareengineeringdaily.com/category/podcast/feed/
|
||||
https://feeds.simplecast.com/XA_851k3
|
||||
https://changelog.com/podcast/feed
|
||||
https://www.codingblocks.net/podcast-feed.xml
|
||||
https://therabbithole.libsyn.com/rss
|
||||
https://feeds.simplecast.com/7y1CbAbN
|
||||
https://legacycoderocks.libsyn.com/rss
|
||||
https://github.com/MorganGeek.private.atom?token=AA4MQGFBMZSPMN5NQZZGYMN5EFTLU
|
||||
https://buttondown.email/hillelwayne/rss
|
||||
https://www.kill-the-newsletter.com/feeds/5guqrixbconkaq4dtfa0.xml
|
||||
https://www.kill-the-newsletter.com/feeds/a64hwil6d0amjfsa3fo2.xml
|
||||
https://www.kill-the-newsletter.com/feeds/eyobd9lr5rtaj1ga9kg0.xml
|
||||
https://www.switchaboo.com/rss/
|
||||
https://blog.eban.bzh/rss.xml
|
@ -5,3 +5,6 @@ Host *
|
||||
IdentityFile ~/.ssh/id_ed25519
|
||||
IdentityFile ~/.ssh/id_rsa
|
||||
ServerAliveInterval 3600
|
||||
|
||||
Match all
|
||||
Include banyan.config
|
||||
|
175
requirements.txt
175
requirements.txt
@ -1,24 +1,26 @@
|
||||
ansicolor==0.2.6
|
||||
appdirs==1.4.3
|
||||
appnope==0.1.0
|
||||
argcomplete==1.10.0
|
||||
arrow==0.15.5
|
||||
asn1crypto==1.2.0
|
||||
astroid==2.3.3
|
||||
attrs==19.3.0
|
||||
Automat==0.8.0
|
||||
autopep8==1.4.4
|
||||
awscli==1.16.278
|
||||
backcall==0.1.0
|
||||
beautifulsoup4==4.8.1
|
||||
beautifulsoup4==4.9.1
|
||||
beautysh==6.0.1
|
||||
black==19.10b0
|
||||
bleach==3.1.4
|
||||
boto3==1.10.14
|
||||
botocore==1.13.14
|
||||
bleach==3.3.0
|
||||
bs4==0.0.1
|
||||
cachetools==3.1.1
|
||||
certifi==2019.9.11
|
||||
castero==0.8.0
|
||||
certifi==2020.6.20
|
||||
cffi==1.13.2
|
||||
chardet==3.0.4
|
||||
Click==7.0
|
||||
CJKwrap==2.2
|
||||
click==7.1.2
|
||||
colorama==0.4.1
|
||||
colorzero==1.1
|
||||
configobj==5.0.6
|
||||
@ -32,20 +34,21 @@ docutils==0.15.2
|
||||
entrypoints==0.3
|
||||
flake8==3.7.9
|
||||
future==0.18.2
|
||||
gitlint==0.13.1
|
||||
google-api-python-client==1.7.11
|
||||
google-auth==1.7.0
|
||||
google-auth-httplib2==0.0.3
|
||||
google-auth==1.7.0
|
||||
gpg==1.13.1
|
||||
gpiozero==1.5.1
|
||||
guizero==1.1.0
|
||||
haxor-news==0.4.3
|
||||
httplib2==0.18.0
|
||||
hyperlink==19.0.0
|
||||
idna==2.8
|
||||
idna==2.10
|
||||
incremental==17.5.0
|
||||
ipykernel==5.1.3
|
||||
ipython==7.9.0
|
||||
ipython-genutils==0.2.0
|
||||
ipython==7.9.0
|
||||
isort==4.3.21
|
||||
jedi==0.15.1
|
||||
jmespath==0.9.4
|
||||
@ -54,7 +57,7 @@ jupyter-core==4.6.1
|
||||
kitchen==1.2.6
|
||||
kiwisolver==1.1.0
|
||||
lazy-object-proxy==1.4.3
|
||||
lxml==4.4.1
|
||||
lxml==4.6.5
|
||||
matplotlib==3.1.1
|
||||
mccabe==0.6.1
|
||||
mock==3.0.5
|
||||
@ -73,14 +76,18 @@ pigpio==1.44
|
||||
Pillow==6.2.1
|
||||
pipenv==2018.11.26
|
||||
pkginfo==1.5.0.1
|
||||
pocket==0.3.6
|
||||
prompt-toolkit==2.0.10
|
||||
proselint==0.10.2
|
||||
Protego==0.1.15
|
||||
psutil==5.7.0
|
||||
ptyprocess==0.6.0
|
||||
pyasn1==0.4.7
|
||||
pyasn1-modules==0.2.7
|
||||
pyasn1==0.4.7
|
||||
pycodestyle==2.5.0
|
||||
pycparser==2.19
|
||||
PyDispatcher==2.0.5
|
||||
pyfiglet==0.8.post1
|
||||
pyflakes==2.1.1
|
||||
pygame==1.9.6
|
||||
Pygments==2.4.2
|
||||
@ -89,35 +96,38 @@ pyhcl==0.4.0
|
||||
pylint==2.4.3
|
||||
pyOpenSSL==19.0.0
|
||||
pyparsing==2.4.4
|
||||
PyQt5==5.13.2
|
||||
PyQt5-sip==12.7.0
|
||||
PyQt5==5.13.2
|
||||
PyQtChart==5.13.1
|
||||
pyserial==3.4
|
||||
PySocks==1.7.1
|
||||
python-dateutil==2.8.1
|
||||
python-dateutil==2.8.0
|
||||
python-jenkins==1.5.0
|
||||
python-mpv==0.4.8
|
||||
python-vlc==3.0.10114
|
||||
pytz==2019.3
|
||||
PyYAML==5.1.2
|
||||
pyzmq==18.1.0
|
||||
QScintilla==2.11.3
|
||||
qtconsole==4.5.5
|
||||
queuelib==1.5.0
|
||||
rainbowstream==1.5.2
|
||||
readme-renderer==24.0
|
||||
rebound-cli==2.0.0
|
||||
regex==2019.11.1
|
||||
requests==2.22.0
|
||||
relint==1.2.1
|
||||
requests-futures==1.0.0
|
||||
requests-toolbelt==0.9.1
|
||||
rsa==4.0
|
||||
requests==2.24.0
|
||||
rsa==3.4.2
|
||||
rtv==1.27.0
|
||||
s3transfer==0.2.1
|
||||
saws==0.4.3
|
||||
Scrapy==1.8.0
|
||||
semver==2.9.0
|
||||
service-identity==18.1.0
|
||||
six==1.13.0
|
||||
sh==1.12.14
|
||||
six==1.15.0
|
||||
slacker==0.13.0
|
||||
soupsieve==1.9.5
|
||||
soupsieve==2.0.1
|
||||
stashy==0.6
|
||||
stem==1.7.1
|
||||
toml==0.10.0
|
||||
@ -125,16 +135,135 @@ tornado==6.0.3
|
||||
torrequest==0.1.0
|
||||
tqdm==4.38.0
|
||||
traitlets==4.3.3
|
||||
tuir==1.29.0
|
||||
Twisted==19.7.0
|
||||
twitter==1.18.0
|
||||
typed-ast==1.4.0
|
||||
uritemplate==3.0.0
|
||||
urllib3==1.25.6
|
||||
urllib3==1.25.9
|
||||
urwid==2.0.1
|
||||
virtualenv==16.7.7
|
||||
vim-vint==0.3.21
|
||||
virtualenv-clone==0.5.3
|
||||
virtualenv==16.7.7
|
||||
w3lib==1.21.0
|
||||
wcwidth==0.1.7
|
||||
webencodings==0.5.1
|
||||
websocket-client==0.56.0
|
||||
wrapt==1.11.2
|
||||
zope.interface==4.6.0
|
||||
yamllint==1.23.0
|
||||
ansicolor==0.2.6
|
||||
appdirs==1.4.3
|
||||
appnope==0.1.0
|
||||
argcomplete==1.10.0
|
||||
arrow==0.15.5
|
||||
asn1crypto==1.2.0
|
||||
astroid==2.3.3
|
||||
attrs==19.3.0
|
||||
Automat==0.8.0
|
||||
autopep8==1.4.4
|
||||
backcall==0.1.0
|
||||
beautifulsoup4==4.9.1
|
||||
beautysh==6.0.1
|
||||
black==19.10b0
|
||||
bleach==3.3.0
|
||||
bs4==0.0.1
|
||||
cachetools==3.1.1
|
||||
castero==0.8.0
|
||||
certifi==2020.6.20
|
||||
cffi==1.13.2
|
||||
chardet==3.0.4
|
||||
CJKwrap==2.2
|
||||
click==7.1.2
|
||||
colorama==0.4.1
|
||||
colorzero==1.1
|
||||
configobj==5.0.6
|
||||
constantly==15.1.0
|
||||
cryptography==2.8
|
||||
cssselect==1.1.0
|
||||
cycler==0.10.0
|
||||
ddgr==1.6
|
||||
decorator==4.4.1
|
||||
docutils==0.15.2
|
||||
entrypoints==0.3
|
||||
flake8==3.7.9
|
||||
future==0.18.2
|
||||
gitlint==0.13.1
|
||||
google-api-python-client==1.7.11
|
||||
google-auth==1.7.0
|
||||
google-auth-httplib2==0.0.3
|
||||
gpg==1.13.1
|
||||
gpiozero==1.5.1
|
||||
guizero==1.1.0
|
||||
haxor-news==0.4.3
|
||||
httplib2==0.18.0
|
||||
hyperlink==19.0.0
|
||||
idna==2.10
|
||||
incremental==17.5.0
|
||||
ipykernel==5.1.3
|
||||
ipython==7.9.0
|
||||
ipython-genutils==0.2.0
|
||||
isort==4.3.21
|
||||
jedi==0.15.1
|
||||
jmespath==0.9.4
|
||||
jupyter-client==5.3.4
|
||||
jupyter-core==4.6.1
|
||||
kitchen==1.2.6
|
||||
kiwisolver==1.1.0
|
||||
lazy-object-proxy==1.4.3
|
||||
lxml==4.6.5
|
||||
matplotlib==3.1.1
|
||||
mccabe==0.6.1
|
||||
mock==3.0.5
|
||||
multi-key-dict==2.0.3
|
||||
nudatus==0.0.4
|
||||
numpy==1.17.3
|
||||
oauth2client==4.1.3
|
||||
parsedatetime==2.4
|
||||
parsel==1.5.2
|
||||
parso==0.5.1
|
||||
pathspec==0.6.0
|
||||
pbr==5.4.3
|
||||
pexpect==4.7.0
|
||||
pickleshare==0.7.5
|
||||
pigpio==1.44
|
||||
Pillow==6.2.1
|
||||
pipenv==2018.11.26
|
||||
pkginfo==1.5.0.1
|
||||
pocket==0.3.6
|
||||
prompt-toolkit==2.0.10
|
||||
proselint==0.10.2
|
||||
Protego==0.1.15
|
||||
psutil==5.7.0
|
||||
ptyprocess==0.6.0
|
||||
pyasn1==0.4.7
|
||||
pyasn1-modules==0.2.7
|
||||
pycodestyle==2.5.0
|
||||
pycparser==2.19
|
||||
PyDispatcher==2.0.5
|
||||
pyfiglet==0.8.post1
|
||||
pyflakes==2.1.1
|
||||
Pygments==2.4.2
|
||||
pyparsing==2.4.4
|
||||
PySDL2==0.9.7
|
||||
python-dateutil==2.8.0
|
||||
python-mpv==0.4.8
|
||||
python-vlc==3.0.10114
|
||||
pyzmq==18.1.0
|
||||
regex==2019.11.1
|
||||
requests==2.24.0
|
||||
rsa==3.4.2
|
||||
sh==1.12.14
|
||||
six==1.15.0
|
||||
soupsieve==2.0.1
|
||||
toml==0.10.0
|
||||
tornado==6.0.3
|
||||
traitlets==4.3.3
|
||||
typed-ast==1.4.0
|
||||
uritemplate==3.0.0
|
||||
urllib3==1.25.9
|
||||
virtualenv==16.7.7
|
||||
virtualenv-clone==0.5.3
|
||||
w3lib==1.21.0
|
||||
wcwidth==0.1.7
|
||||
webencodings==0.5.1
|
||||
wrapt==1.11.2
|
||||
|
Loading…
Reference in New Issue
Block a user