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
|
21
.github/workflows/test.yaml
vendored
21
.github/workflows/test.yaml
vendored
@ -1,21 +0,0 @@
|
|||||||
on: [push]
|
|
||||||
|
|
||||||
name: CI
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build_and_test:
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@master
|
|
||||||
- name: Mimic
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
ln -snf /Users/runner/work/dotfiles ~/Code
|
|
||||||
- name: Run bootstrap
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
~/Code/dotfiles/dot_scripts/bootstrap.sh
|
|
||||||
env:
|
|
||||||
REPO: ${{github.workspace}}
|
|
||||||
DOTFILES_REF: ${{github.sha}}
|
|
||||||
HOMEBREW_BUNDLE_BREW_SKIP: "node"
|
|
25
.gitignore
vendored
25
.gitignore
vendored
@ -3,3 +3,28 @@ Gemfile.lock
|
|||||||
.newjiraissue
|
.newjiraissue
|
||||||
private_dot_3llo/config.sh
|
private_dot_3llo/config.sh
|
||||||
*secret*
|
*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
|
58
Brewfile
58
Brewfile
@ -1,6 +1,7 @@
|
|||||||
tap "homebrew/bundle"
|
tap "homebrew/bundle"
|
||||||
tap "homebrew/cask"
|
tap "homebrew/cask"
|
||||||
tap "homebrew/core"
|
tap "homebrew/core"
|
||||||
|
tap "homeport/tap"
|
||||||
# Tap for chezmoi
|
# Tap for chezmoi
|
||||||
tap "twpayne/taps"
|
tap "twpayne/taps"
|
||||||
# Tap for real path
|
# 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 "romkatv/powerlevel10k" # provides powerlevel10k
|
||||||
tap "shopify/shopify" # provides toxiproxy
|
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 "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 "java"
|
||||||
cask "iterm2"
|
cask "iterm2"
|
||||||
cask "zoomus"
|
cask "zoomus"
|
||||||
@ -57,19 +62,17 @@ cask "dropbox"
|
|||||||
cask "rescuetime"
|
cask "rescuetime"
|
||||||
cask "wireshark"
|
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 "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
|
# Mac app store
|
||||||
# Github actions cannot install these.
|
|
||||||
unless ENV.has_key?('CI') then
|
|
||||||
mas '1Password', id:1333542190
|
|
||||||
mas 'Keynote', id: 409183694
|
mas 'Keynote', id: 409183694
|
||||||
mas 'iMovie', id: 408981434
|
mas 'iMovie', id: 408981434
|
||||||
mas 'Microsoft Remote Desktop', id: 1295203466
|
mas 'Microsoft Remote Desktop', id: 1295203466
|
||||||
mas 'Pages', id: 409201541
|
mas 'Pages', id: 409201541
|
||||||
mas 'GarageBand', id: 682658836
|
mas 'GarageBand', id: 682658836
|
||||||
mas 'Numbers', id: 409203825
|
mas 'Numbers', id: 409203825
|
||||||
end
|
|
||||||
|
|
||||||
|
brew "homeport/tap/havener"
|
||||||
brew "zsh"
|
brew "zsh"
|
||||||
brew "git-ftp"
|
brew "git-ftp"
|
||||||
brew "gnu-sed"
|
brew "gnu-sed"
|
||||||
@ -77,11 +80,12 @@ brew "hugo"
|
|||||||
brew "inetutils"
|
brew "inetutils"
|
||||||
brew "ncftp"
|
brew "ncftp"
|
||||||
brew "plantuml"
|
brew "plantuml"
|
||||||
brew "python3"
|
|
||||||
brew "ripgrep"
|
brew "ripgrep"
|
||||||
brew "twpayne/taps/chezmoi"
|
brew "twpayne/taps/chezmoi"
|
||||||
brew "tmux"
|
brew "tmux"
|
||||||
brew "node"
|
brew "node"
|
||||||
|
brew "direnv"
|
||||||
|
brew "fish"
|
||||||
|
|
||||||
# Fasd (pronounced similar to "fast") is a command-line productivity booster. https://github.com/clvv/fasd
|
# Fasd (pronounced similar to "fast") is a command-line productivity booster. https://github.com/clvv/fasd
|
||||||
brew "fasd"
|
brew "fasd"
|
||||||
@ -109,13 +113,10 @@ brew "htop"
|
|||||||
brew "moreutils"
|
brew "moreutils"
|
||||||
brew "asciidoc"
|
brew "asciidoc"
|
||||||
brew "bash-snippets"
|
brew "bash-snippets"
|
||||||
|
# Mac App Store command line interface
|
||||||
# Github actions cannot install these.
|
brew "mas"
|
||||||
unless ENV.has_key?('CI') then
|
# 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-
|
||||||
brew "mas" # Mac App Store command line interface
|
-version-is-3-5
|
||||||
end
|
|
||||||
|
|
||||||
# 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
|
|
||||||
brew "pyenv"
|
brew "pyenv"
|
||||||
# Google CLI https://github.com/jarun/googler
|
# Google CLI https://github.com/jarun/googler
|
||||||
brew "googler"
|
brew "googler"
|
||||||
@ -149,13 +150,23 @@ brew "aspell"
|
|||||||
brew "neofetch"
|
brew "neofetch"
|
||||||
# add nushell https://github.com/nushell/nushell
|
# add nushell https://github.com/nushell/nushell
|
||||||
brew "nushell"
|
brew "nushell"
|
||||||
|
brew "ncspot"
|
||||||
|
brew "python@3.10"
|
||||||
|
brew "pipx"
|
||||||
|
brew "watch"
|
||||||
|
|
||||||
# tools for K8S
|
# tools for K8S
|
||||||
brew "kubectl"
|
brew "kubectl"
|
||||||
brew "kubectx"
|
brew "kubectx"
|
||||||
|
brew "kube-linter"
|
||||||
|
brew "kubernetes-cli"
|
||||||
|
brew "kustomize"
|
||||||
|
brew "popeye" # Kubernetes resources sanity analysis
|
||||||
|
|
||||||
brew "packer"
|
brew "packer"
|
||||||
brew "go"
|
brew "go"
|
||||||
|
brew "golangci-lint"
|
||||||
|
brew "gopls"
|
||||||
brew "weechat" # need an IRC client
|
brew "weechat" # need an IRC client
|
||||||
brew "tflint" # terraform linter
|
brew "tflint" # terraform linter
|
||||||
brew "ktlint" # kotlin linter
|
brew "ktlint" # kotlin linter
|
||||||
@ -163,6 +174,8 @@ brew "cmake" # compiler, was needed for compiling YouCompleteMe, see https://git
|
|||||||
brew "zola" # a simple and fast static site generator
|
brew "zola" # a simple and fast static site generator
|
||||||
brew "rustup" # Install Rust
|
brew "rustup" # Install Rust
|
||||||
brew "jq" # add jq utility for parsing json
|
brew "jq" # add jq utility for parsing json
|
||||||
|
brew "jsonlint"
|
||||||
|
brew "gron"
|
||||||
brew "octant" # k8s cluster viewer
|
brew "octant" # k8s cluster viewer
|
||||||
brew "telepresence" # telepresence https://www.telepresence.io/reference/install
|
brew "telepresence" # telepresence https://www.telepresence.io/reference/install
|
||||||
brew "ansiweather" # https://github.com/fcambus/ansiweather
|
brew "ansiweather" # https://github.com/fcambus/ansiweather
|
||||||
@ -178,7 +191,6 @@ brew "tac" # Needed for some terraform modules at work
|
|||||||
brew "coreutils"
|
brew "coreutils"
|
||||||
brew "gh" # GitHub CLI
|
brew "gh" # GitHub CLI
|
||||||
brew "bash" # time to upgrade bash
|
brew "bash" # time to upgrade bash
|
||||||
brew "popeye" # Kubernetes resources sanity analysis
|
|
||||||
brew "pre-commit" # https://pre-commit.com/#install
|
brew "pre-commit" # https://pre-commit.com/#install
|
||||||
brew "terraform-docs" # https://github.com/segmentio/terraform-docs
|
brew "terraform-docs" # https://github.com/segmentio/terraform-docs
|
||||||
brew "shfmt" # format shell
|
brew "shfmt" # format shell
|
||||||
@ -197,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 "translate-shell" # provides the trans command, more doc via https://www.ostechnix.com/use-google-translate-commandline-linux/
|
||||||
brew "toxiproxy"
|
brew "toxiproxy"
|
||||||
brew "bitwarden-cli"
|
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
|
## Prerequisites
|
||||||
|
|
||||||
### Centos
|
### Centos
|
||||||
|
|
||||||
`yum install git -y`
|
`yum install git -y`
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
```
|
```
|
||||||
git clone https://github.com/MorganGeek/dotfiles.git ~/Code/dotfiles
|
git clone https://github.com/MorganGeek/dotfiles.git $HOME/Code/dotfiles
|
||||||
~/Code/dotfiles/dot_scripts/bootstrap.sh
|
$HOME/Code/dotfiles/dot_scripts/bootstrap.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
### Run
|
### Run
|
||||||
|
|
||||||
run `.scripts/bootstrap.sh`
|
run `.scripts/bootstrap.sh`
|
||||||
|
|
||||||
### Reload
|
### Reload
|
||||||
|
|
||||||
run `zsh .scripts/reload.sh`
|
run `zsh .scripts/reload.sh`
|
||||||
|
|
||||||
### Upgrade
|
### Upgrade
|
||||||
|
|
||||||
run `zsh .scripts/upgrade.sh`
|
run `zsh .scripts/upgrade.sh`
|
||||||
|
|
||||||
### Scope
|
### 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`
|
`sudo ansible-playbook ~/.scripts/ansible/macsecure_playbook.yaml`
|
||||||
|
|
||||||
#### In cases of `\n` errors with zsh
|
#### 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
|
cd $ZSH
|
||||||
git config core.autocrlf false
|
git config core.autocrlf false
|
||||||
|
@ -53,7 +53,7 @@ chmod 755 /bin/git-ftp
|
|||||||
yum install golang golang-godoc golang-vet golang-src golang-pkg-linux-amd64 -y
|
yum install golang golang-godoc golang-vet golang-src golang-pkg-linux-amd64 -y
|
||||||
echo "export GOPATH=\"$HOME/go\"" >>~/.zshrc
|
echo "export GOPATH=\"$HOME/go\"" >>~/.zshrc
|
||||||
echo "export PATH=\"$GOPATH/bin:$PATH\"" >>~/.zshrc
|
echo "export PATH=\"$GOPATH/bin:$PATH\"" >>~/.zshrc
|
||||||
. ~/.zshrc
|
. "$HOME/.zshrc"
|
||||||
|
|
||||||
# Install Hugo
|
# Install Hugo
|
||||||
mkdir "$HOME/src"
|
mkdir "$HOME/src"
|
||||||
@ -68,12 +68,9 @@ yum -y install telnet ftp rsh traceroute
|
|||||||
# FTP UI
|
# FTP UI
|
||||||
yum -y install filezilla
|
yum -y install filezilla
|
||||||
|
|
||||||
# Install SDK Man
|
~/.scripts/sdkmandeps.sh
|
||||||
curl -s "https://get.sdkman.io" | bash
|
|
||||||
source "/root/.sdkman/bin/sdkman-init.sh"
|
|
||||||
|
|
||||||
# Install Plantuml
|
# Install Plantuml
|
||||||
sdk install java
|
|
||||||
curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download -o /usr/local/bin/plantuml.jar &&
|
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 &&
|
echo 'java -jar /usr/local/bin/plantuml.jar $@' >/usr/local/bin/plantuml &&
|
||||||
chmod +x /usr/local/bin/plantuml
|
chmod +x /usr/local/bin/plantuml
|
||||||
|
@ -2,6 +2,12 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>AboutToPasteTabsWithCancel</key>
|
||||||
|
<true/>
|
||||||
|
<key>AboutToPasteTabsWithCancel_selection</key>
|
||||||
|
<integer>2</integer>
|
||||||
|
<key>AlternateMouseScroll</key>
|
||||||
|
<true/>
|
||||||
<key>AppleAntiAliasingThreshold</key>
|
<key>AppleAntiAliasingThreshold</key>
|
||||||
<integer>1</integer>
|
<integer>1</integer>
|
||||||
<key>AppleScrollAnimationEnabled</key>
|
<key>AppleScrollAnimationEnabled</key>
|
||||||
@ -17,7 +23,7 @@
|
|||||||
<key>LoadPrefsFromCustomFolder</key>
|
<key>LoadPrefsFromCustomFolder</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NSNavLastRootDirectory</key>
|
<key>NSNavLastRootDirectory</key>
|
||||||
<string>~</string>
|
<string>/Applications</string>
|
||||||
<key>NSNavPanelExpandedSizeForOpenMode</key>
|
<key>NSNavPanelExpandedSizeForOpenMode</key>
|
||||||
<string>{712, 448}</string>
|
<string>{712, 448}</string>
|
||||||
<key>NSQuotedKeystrokeBinding</key>
|
<key>NSQuotedKeystrokeBinding</key>
|
||||||
@ -52,13 +58,21 @@
|
|||||||
<key>NSTableView Supports v2 KeyBingingTable</key>
|
<key>NSTableView Supports v2 KeyBingingTable</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NSWindow Frame NSFontPanel</key>
|
<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>
|
<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>
|
<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>
|
<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>
|
<key>New Bookmarks</key>
|
||||||
<array>
|
<array>
|
||||||
<dict>
|
<dict>
|
||||||
@ -261,8 +275,8 @@
|
|||||||
<key>Red Component</key>
|
<key>Red Component</key>
|
||||||
<real>0.0055023282766342163</real>
|
<real>0.0055023282766342163</real>
|
||||||
</dict>
|
</dict>
|
||||||
<key>Background Image Location</key>
|
<key>Background Image Is Tiled</key>
|
||||||
<string></string>
|
<false/>
|
||||||
<key>Badge Color</key>
|
<key>Badge Color</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Alpha Component</key>
|
<key>Alpha Component</key>
|
||||||
@ -276,10 +290,12 @@
|
|||||||
<key>Red Component</key>
|
<key>Red Component</key>
|
||||||
<real>1</real>
|
<real>1</real>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>Blend</key>
|
||||||
|
<real>0.050000000000000003</real>
|
||||||
<key>Blinking Cursor</key>
|
<key>Blinking Cursor</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>Blur</key>
|
<key>Blur</key>
|
||||||
<false/>
|
<true/>
|
||||||
<key>Bold Color</key>
|
<key>Bold Color</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Blue Component</key>
|
<key>Blue Component</key>
|
||||||
@ -299,6 +315,8 @@
|
|||||||
<integer>80</integer>
|
<integer>80</integer>
|
||||||
<key>Command</key>
|
<key>Command</key>
|
||||||
<string></string>
|
<string></string>
|
||||||
|
<key>Cursor Boost</key>
|
||||||
|
<real>0.0</real>
|
||||||
<key>Cursor Color</key>
|
<key>Cursor Color</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Blue Component</key>
|
<key>Blue Component</key>
|
||||||
@ -667,7 +685,7 @@
|
|||||||
<real>0.0</real>
|
<real>0.0</real>
|
||||||
</dict>
|
</dict>
|
||||||
<key>Minimum Contrast</key>
|
<key>Minimum Contrast</key>
|
||||||
<real>0.0</real>
|
<real>0.72345525568181823</real>
|
||||||
<key>Mouse Reporting</key>
|
<key>Mouse Reporting</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Name</key>
|
<key>Name</key>
|
||||||
@ -677,7 +695,7 @@
|
|||||||
<key>Non-ASCII Anti Aliased</key>
|
<key>Non-ASCII Anti Aliased</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Normal Font</key>
|
<key>Normal Font</key>
|
||||||
<string>MesloLGMForPowerline-Regular 14</string>
|
<string>HackNerdFontCompleteM-Regular 14</string>
|
||||||
<key>Option Key Sends</key>
|
<key>Option Key Sends</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
<key>Prompt Before Closing 2</key>
|
<key>Prompt Before Closing 2</key>
|
||||||
@ -725,7 +743,7 @@
|
|||||||
<key>Terminal Type</key>
|
<key>Terminal Type</key>
|
||||||
<string>xterm-256color</string>
|
<string>xterm-256color</string>
|
||||||
<key>Transparency</key>
|
<key>Transparency</key>
|
||||||
<real>0.0</real>
|
<real>0.081466132614213205</real>
|
||||||
<key>Unlimited Scrollback</key>
|
<key>Unlimited Scrollback</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>Use Bold Font</key>
|
<key>Use Bold Font</key>
|
||||||
@ -736,6 +754,10 @@
|
|||||||
<true/>
|
<true/>
|
||||||
<key>Use Non-ASCII Font</key>
|
<key>Use Non-ASCII Font</key>
|
||||||
<false/>
|
<false/>
|
||||||
|
<key>Use Tab Color</key>
|
||||||
|
<false/>
|
||||||
|
<key>Use Underline Color</key>
|
||||||
|
<false/>
|
||||||
<key>Vertical Spacing</key>
|
<key>Vertical Spacing</key>
|
||||||
<real>1</real>
|
<real>1</real>
|
||||||
<key>Visual Bell</key>
|
<key>Visual Bell</key>
|
||||||
@ -1380,6 +1402,8 @@
|
|||||||
</array>
|
</array>
|
||||||
<key>NoSyncHaveRequestedFullDiskAccess</key>
|
<key>NoSyncHaveRequestedFullDiskAccess</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>NoSyncHaveUsedCopyMode</key>
|
||||||
|
<true/>
|
||||||
<key>NoSyncHaveWarnedAboutPasteConfirmationChange</key>
|
<key>NoSyncHaveWarnedAboutPasteConfirmationChange</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NoSyncInstallationId</key>
|
<key>NoSyncInstallationId</key>
|
||||||
@ -1392,6 +1416,10 @@
|
|||||||
<false/>
|
<false/>
|
||||||
<key>NoSyncTimeOfFirstLaunchOfVersionWithTip</key>
|
<key>NoSyncTimeOfFirstLaunchOfVersionWithTip</key>
|
||||||
<real>569923461.412552</real>
|
<real>569923461.412552</real>
|
||||||
|
<key>PMPrintingExpandedStateForPrint2</key>
|
||||||
|
<false/>
|
||||||
|
<key>PasteTabToStringTabStopSize</key>
|
||||||
|
<integer>4</integer>
|
||||||
<key>PointerActions</key>
|
<key>PointerActions</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>Button,1,1,,</key>
|
<key>Button,1,1,,</key>
|
||||||
@ -1427,6 +1455,8 @@
|
|||||||
</dict>
|
</dict>
|
||||||
<key>PrefsCustomFolder</key>
|
<key>PrefsCustomFolder</key>
|
||||||
<string>/Users/morganwattiez</string>
|
<string>/Users/morganwattiez</string>
|
||||||
|
<key>Print In Black And White</key>
|
||||||
|
<true/>
|
||||||
<key>SUEnableAutomaticChecks</key>
|
<key>SUEnableAutomaticChecks</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>SUFeedAlternateAppNameKey</key>
|
<key>SUFeedAlternateAppNameKey</key>
|
||||||
@ -1436,9 +1466,11 @@
|
|||||||
<key>SUHasLaunchedBefore</key>
|
<key>SUHasLaunchedBefore</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>SULastCheckTime</key>
|
<key>SULastCheckTime</key>
|
||||||
<date>2019-02-26T13:53:46Z</date>
|
<date>2020-07-19T09:05:45Z</date>
|
||||||
<key>SUSendProfileInfo</key>
|
<key>SUSendProfileInfo</key>
|
||||||
<false/>
|
<false/>
|
||||||
|
<key>ShowFullScreenTabBar</key>
|
||||||
|
<false/>
|
||||||
<key>TabStyleWithAutomaticOption</key>
|
<key>TabStyleWithAutomaticOption</key>
|
||||||
<integer>4</integer>
|
<integer>4</integer>
|
||||||
<key>WordCharacters</key>
|
<key>WordCharacters</key>
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
"Guid" : "15B87686-16CF-448A-9B73-5E38F56A2179",
|
"Guid" : "15B87686-16CF-448A-9B73-5E38F56A2179",
|
||||||
"Rows" : 25,
|
"Rows" : 25,
|
||||||
"Default Bookmark" : "No",
|
"Default Bookmark" : "No",
|
||||||
|
"Blend" : 0.050000000000000003,
|
||||||
"Cursor Guide Color" : {
|
"Cursor Guide Color" : {
|
||||||
"Red Component" : 0.70213186740875244,
|
"Red Component" : 0.70213186740875244,
|
||||||
"Color Space" : "sRGB",
|
"Color Space" : "sRGB",
|
||||||
@ -284,8 +285,7 @@
|
|||||||
},
|
},
|
||||||
"Window Type" : 0,
|
"Window Type" : 0,
|
||||||
"Cursor Boost" : 0,
|
"Cursor Boost" : 0,
|
||||||
"Background Image Location" : "",
|
"Blur" : true,
|
||||||
"Blur" : false,
|
|
||||||
"Badge Color" : {
|
"Badge Color" : {
|
||||||
"Red Component" : 1,
|
"Red Component" : 1,
|
||||||
"Color Space" : "sRGB",
|
"Color Space" : "sRGB",
|
||||||
@ -307,6 +307,7 @@
|
|||||||
"Blue Component" : 0.63137254901960782,
|
"Blue Component" : 0.63137254901960782,
|
||||||
"Green Component" : 0.63137254901960782
|
"Green Component" : 0.63137254901960782
|
||||||
},
|
},
|
||||||
|
"Background Image Is Tiled" : false,
|
||||||
"Name" : "MorganGeek",
|
"Name" : "MorganGeek",
|
||||||
"Cursor Text Color" : {
|
"Cursor Text Color" : {
|
||||||
"Red Component" : 0.027450980392156862,
|
"Red Component" : 0.027450980392156862,
|
||||||
@ -322,7 +323,7 @@
|
|||||||
"Blue Component" : 0.58823529411764708,
|
"Blue Component" : 0.58823529411764708,
|
||||||
"Green Component" : 0.58039215686274515
|
"Green Component" : 0.58039215686274515
|
||||||
},
|
},
|
||||||
"Transparency" : 0,
|
"Transparency" : 0.081466132614213205,
|
||||||
"Ansi 1 Color" : {
|
"Ansi 1 Color" : {
|
||||||
"Red Component" : 0.86274509803921573,
|
"Red Component" : 0.86274509803921573,
|
||||||
"Color Space" : "sRGB",
|
"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"
|
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 for more information
|
||||||
# See https://pre-commit.com/hooks.html for more hooks
|
# See https://pre-commit.com/hooks.html for more hooks
|
||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
rev: v2.5.0
|
rev: v3.1.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: trailing-whitespace
|
|
||||||
- id: end-of-file-fixer
|
|
||||||
- id: check-yaml
|
|
||||||
- id: check-added-large-files
|
- id: check-added-large-files
|
||||||
|
- id: check-case-conflict
|
||||||
|
- id: check-executables-have-shebangs
|
||||||
|
- id: check-json
|
||||||
- id: check-merge-conflict
|
- id: check-merge-conflict
|
||||||
- id: pretty-format-json
|
|
||||||
- id: check-symlinks
|
- id: check-symlinks
|
||||||
|
- id: check-yaml
|
||||||
|
- id: check-xml
|
||||||
- id: detect-aws-credentials
|
- id: detect-aws-credentials
|
||||||
- id: detect-private-key
|
- id: detect-private-key
|
||||||
- id: flake8
|
- id: end-of-file-fixer
|
||||||
|
- id: mixed-line-ending
|
||||||
|
- id: pretty-format-json
|
||||||
- id: requirements-txt-fixer
|
- id: requirements-txt-fixer
|
||||||
- id: sort-simple-yaml
|
- id: sort-simple-yaml
|
||||||
- repo: git://github.com/antonbabenko/pre-commit-terraform
|
- id: trailing-whitespace
|
||||||
rev: v1.27.0 # Get the latest from: https://github.com/antonbabenko/pre-commit-terraform/releases
|
- repo: https://gitlab.com/pycqa/flake8.git
|
||||||
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
|
rev: master
|
||||||
hooks:
|
hooks:
|
||||||
- id: docker-jenkinslint
|
- id: flake8
|
||||||
language: docker_image
|
- repo: git://github.com/antonbabenko/pre-commit-terraform
|
||||||
entry: --entrypoint /usr/local/bin/run-jflint.sh askulkarni2/jenkinslint
|
rev: v1.31.0 # Get the latest from: https://github.com/antonbabenko/pre-commit-terraform/releases
|
||||||
files: Jenkinsfile
|
hooks:
|
||||||
|
- id: terraform_fmt
|
||||||
|
- id: terragrunt_fmt
|
||||||
|
- id: terraform_docs
|
||||||
|
- id: terraform_docs_without_aggregate_type_defaults
|
||||||
|
- id: terraform_tflint
|
||||||
|
args: [--deep]
|
||||||
|
- id: terraform_validate
|
||||||
|
- id: terraform_tfsec
|
||||||
#- repo: https://github.com/ansible/ansible-lint.git
|
#- repo: https://github.com/ansible/ansible-lint.git
|
||||||
# rev: v4.1.0
|
# rev: v4.1.0
|
||||||
# hooks:
|
# hooks:
|
||||||
#- id: ansible-lint
|
#- id: ansible-lint
|
||||||
# files: \.(yaml|yml)$
|
# files: \.(yaml|yml)$
|
||||||
#- repo: https://github.com/pre-commit/mirrors-autopep8
|
- repo: git@github.com:jorisroovers/gitlint.git
|
||||||
# rev: 'v1.5' # Use the sha / tag you want to point at
|
rev: v0.13.1
|
||||||
# hooks:
|
hooks:
|
||||||
# - id: autopep8
|
- 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: forbid-binary
|
||||||
|
- id: bundler-audit
|
||||||
|
- 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/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: 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
|
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
|
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
|
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
|
contrib = ! git log --pretty=format:'%aN' | sort | uniq -c | sort -nr
|
||||||
whois = ! sh -c 'git log -i --pretty=\"format:%an <%ae>\" --author=\"\" | sort -u' -
|
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=.
|
di = diff -w --color-words=.
|
||||||
ac = ! git add . && git commit -v
|
ac = ! git add . && git commit -v
|
||||||
unstage = reset HEAD
|
unstage = reset HEAD
|
||||||
@ -24,14 +50,60 @@
|
|||||||
--format=\"%ad\" \
|
--format=\"%ad\" \
|
||||||
--date=\"format:%H\" \
|
--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\"\"}}'"
|
| 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]
|
[help]
|
||||||
autocorrect = -1 # not more git psuh
|
autocorrect = -1 # not more git psuh
|
||||||
|
|
||||||
[init]
|
[init]
|
||||||
templateDir = ~/.git-template
|
templateDir = /Users/morganwattiez/.git-template
|
||||||
|
|
||||||
[core]
|
[core]
|
||||||
pager = diff-so-fancy | less --tabs=4 -RFX
|
pager = delta --line-numbers --diff-highlight
|
||||||
excludesfile = ~/.gitignore
|
# 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]
|
[diff]
|
||||||
noprefix = true
|
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:"]
|
[url "git@github.com:"]
|
||||||
insteadOf = https://github.com/
|
insteadOf = https://github.com/
|
||||||
|
|
||||||
|
[difftool]
|
||||||
|
prompt = false
|
||||||
|
|
||||||
|
[delta]
|
||||||
|
plus-color = "#012800"
|
||||||
|
minus-color = "#340001"
|
||||||
|
theme = Monokai Extended
|
||||||
|
|
||||||
|
[interactive]
|
||||||
|
diffFilter = delta --color-only
|
||||||
|
@ -7,15 +7,15 @@
|
|||||||
tasks:
|
tasks:
|
||||||
- name: Check yubikey binaries are installed
|
- name: Check yubikey binaries are installed
|
||||||
stat:
|
stat:
|
||||||
path: "{{ item }}"
|
path: '{{ item }}'
|
||||||
with_items:
|
with_items:
|
||||||
- /usr/local/bin/ykpamcfg
|
- /usr/local/bin/ykpamcfg
|
||||||
- "/Applications/YubiKey\ Manager.app/Contents/MacOS/ykman"
|
- /Applications/YubiKey Manager.app/Contents/MacOS/ykman
|
||||||
|
|
||||||
- name: Check Yubico is recognized
|
- name: Check Yubico is recognized
|
||||||
shell: "'/Applications/YubiKey Manager.app/Contents/MacOS/ykman' list | awk '{print $6}'"
|
shell: "'/Applications/YubiKey Manager.app/Contents/MacOS/ykman' list | awk '{print $6}'"
|
||||||
register: yubicoChallenge
|
register: yubicoChallenge
|
||||||
failed_when: "yubicoChallenge.rc != 0 or yubicoChallenge.stdout == ''"
|
failed_when: yubicoChallenge.rc != 0 or yubicoChallenge.stdout == ''
|
||||||
|
|
||||||
- name: Get current user
|
- name: Get current user
|
||||||
become: false
|
become: false
|
||||||
@ -24,14 +24,14 @@
|
|||||||
|
|
||||||
- name: Check yubico challenge exists
|
- name: Check yubico challenge exists
|
||||||
stat:
|
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
|
- name: Ensure yubikey is needed for authentication at login screen
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: "{{ item }}"
|
path: '{{ item }}'
|
||||||
regexp: '^auth.*pam_yubico.so.*'
|
regexp: ^auth.*pam_yubico.so.*
|
||||||
line: "auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response"
|
line: auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response
|
||||||
insertbefore: "^account required pam_opendirectory.so"
|
insertbefore: ^account required pam_opendirectory.so
|
||||||
state: absent
|
state: absent
|
||||||
with_items:
|
with_items:
|
||||||
- /etc/pam.d/screensaver
|
- /etc/pam.d/screensaver
|
||||||
|
@ -7,15 +7,15 @@
|
|||||||
tasks:
|
tasks:
|
||||||
- name: Check yubikey binaries are installed
|
- name: Check yubikey binaries are installed
|
||||||
stat:
|
stat:
|
||||||
path: "{{ item }}"
|
path: '{{ item }}'
|
||||||
with_items:
|
with_items:
|
||||||
- /usr/local/bin/ykpamcfg
|
- /usr/local/bin/ykpamcfg
|
||||||
- "/Applications/YubiKey\ Manager.app/Contents/MacOS/ykman"
|
- /Applications/YubiKey Manager.app/Contents/MacOS/ykman
|
||||||
|
|
||||||
- name: Check Yubico is recognized
|
- name: Check Yubico is recognized
|
||||||
shell: "'/Applications/YubiKey Manager.app/Contents/MacOS/ykman' list | awk '{print $6}'"
|
shell: "'/Applications/YubiKey Manager.app/Contents/MacOS/ykman' list | awk '{print $6}'"
|
||||||
register: yubicoChallenge
|
register: yubicoChallenge
|
||||||
failed_when: "yubicoChallenge.rc != 0 or yubicoChallenge.stdout == ''"
|
failed_when: yubicoChallenge.rc != 0 or yubicoChallenge.stdout == ''
|
||||||
|
|
||||||
- name: Get current user
|
- name: Get current user
|
||||||
become: false
|
become: false
|
||||||
@ -24,23 +24,23 @@
|
|||||||
|
|
||||||
- name: Check yubico challenge exists
|
- name: Check yubico challenge exists
|
||||||
stat:
|
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
|
- name: Ensure yubikey is needed for authentication at login screen
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: "{{ item }}"
|
path: '{{ item }}'
|
||||||
regexp: '^auth.*pam_yubico.so.*'
|
regexp: ^auth.*pam_yubico.so.*
|
||||||
line: "auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response"
|
line: auth required /usr/local/lib/security/pam_yubico.so mode=challenge-response
|
||||||
insertbefore: "^account required pam_opendirectory.so"
|
insertbefore: ^account required pam_opendirectory.so
|
||||||
with_items:
|
with_items:
|
||||||
- /etc/pam.d/screensaver
|
- /etc/pam.d/screensaver
|
||||||
- /etc/pam.d/authorization
|
- /etc/pam.d/authorization
|
||||||
|
|
||||||
- name: Ensure touch id is enough to authenticate with sudo
|
- name: Ensure touch id is enough to authenticate with sudo
|
||||||
lineinfile:
|
lineinfile:
|
||||||
path: "{{ item }}"
|
path: '{{ item }}'
|
||||||
regexp: '^auth.*sufficient.*pam_tid.so.*'
|
regexp: ^auth.*sufficient.*pam_tid.so.*
|
||||||
line: "auth sufficient pam_tid.so"
|
line: auth sufficient pam_tid.so
|
||||||
insertafter: "^#.*"
|
insertafter: ^#.*
|
||||||
with_items:
|
with_items:
|
||||||
- /etc/pam.d/sudo
|
- /etc/pam.d/sudo
|
||||||
|
@ -1,285 +1,52 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Make sure Code directory exists
|
|
||||||
|
|
||||||
echo "Hello $(whoami)! Let's get you set up."
|
echo "Hello $(whoami)! Let's get you set up."
|
||||||
|
|
||||||
echo "create vim directory is missing"
|
# Make sure Code directory exists
|
||||||
mkdir -vp "$HOME/.vim"
|
|
||||||
|
|
||||||
echo "mkdir -p $HOME/Code"
|
echo "mkdir -p $HOME/Code"
|
||||||
mkdir -p ~/Code
|
mkdir -p "$HOME/Code"
|
||||||
ln -snf ~/Code/dotfiles/dot_scripts ~/.scripts
|
ln -snf "$HOME/Code/dotfiles/dot_scripts" "$HOME/.scripts"
|
||||||
ln -snf ~/Code/dotfiles/dot_gitconfig ~/.gitconfig
|
chmod +x "$HOME/.scripts/*.sh"
|
||||||
chmod +x ~/.scripts/*.sh
|
|
||||||
|
|
||||||
if [[ $(uname) == "Linux" ]]; then
|
"$HOME/.scripts/install_linux_packages.sh"
|
||||||
IS_LINUX=true
|
"$HOME/.scripts/install_homebrew.sh"
|
||||||
else
|
|
||||||
IS_LINUX=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $(uname) == "Darwin" ]]; then
|
|
||||||
IS_MAC=true
|
|
||||||
else
|
|
||||||
IS_MAC=false
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install missing package (Linux)
|
|
||||||
function installLinuxPackages() {
|
|
||||||
if [ "$IS_LINUX" = true ]; then
|
|
||||||
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
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install HomeBrew
|
|
||||||
function installBrew() {
|
|
||||||
if [ "$IS_MAC" = true ]; then
|
|
||||||
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
|
|
||||||
# Path to ruby
|
# Path to ruby
|
||||||
export PATH="/usr/local/opt/ruby/bin:$PATH"
|
export PATH="/usr/local/opt/ruby/bin:$PATH"
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Create symbolic links
|
# Create symbolic links
|
||||||
function createSymbolicLinks() {
|
"$HOME/.scripts/symbolic_links.sh"
|
||||||
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_macos ~/.macos
|
|
||||||
ln -snf ~/Code/dotfiles/dot_scripts/checkci.sh /usr/local/bin/checkci
|
|
||||||
ln -snf ~/Code/dotfiles/dot_vimrc ~/.vimrc
|
|
||||||
ln -snf ~/Code/dotfiles/dot_vim/ale_linters ~/.vim/ale_linters # custom linters
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install dependencies (apps, fonts, ...) with Brew
|
# Install user applications
|
||||||
function installMacSoftware() {
|
"$HOME/.scripts/install_macpackages.sh"
|
||||||
if [ "$IS_MAC" = true ]; then
|
"$HOME/.scripts/install_linux_user_apps.sh"
|
||||||
echo "(Mac OS X) Installing Docker"
|
|
||||||
~/.scripts/install_docker_for_mac.sh
|
|
||||||
echo "(Mac OS X) Brew installing stuff (apps, fonts, ...)"
|
|
||||||
ln -snf ~/Code/dotfiles/Brewfile ~/Brewfile
|
|
||||||
brew bundle
|
|
||||||
# Configure Mac specific symbolic links
|
|
||||||
echo "(Mac OS X) Adding symbolic links"
|
|
||||||
mkdir -pv "$HOME/Library/Application Support/Code/User/snippets"
|
|
||||||
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"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install dependencies (apps, fonts, ...) for CentOS
|
|
||||||
function installLinuxSoftware() {
|
|
||||||
if [ "$IS_LINUX" = true ]; then
|
|
||||||
echo "(CentOS) Installing stuff (apps, ...)"
|
|
||||||
chmod +x ~/Code/dotfiles/centos.sh
|
|
||||||
~/Code/dotfiles/centos.sh
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Switch to ZSH
|
# Switch to ZSH
|
||||||
function switchToZsh() {
|
|
||||||
sudo -v
|
|
||||||
echo "switching to ZSH"
|
echo "switching to ZSH"
|
||||||
command -v zsh >>/etc/shells
|
command -v zsh >>/etc/shells
|
||||||
chsh -s "$(command -v zsh)"
|
chsh -s "$(command -v zsh)"
|
||||||
}
|
|
||||||
|
|
||||||
# Use SDKMan to install development tools
|
"$HOME/.scripts/sdkmandeps.sh"
|
||||||
function installSDKMan() {
|
"$HOME/.scripts/rubydeps.sh"
|
||||||
echo "Installing SDKMan as development tools manager"
|
"$HOME/.scripts/bundlerdeps.sh"
|
||||||
curl -s "https://get.sdkman.io" | bash
|
"$HOME/.scripts/ohmyzshdeps.sh"
|
||||||
|
"$HOME/.scripts/vimdeps.sh"
|
||||||
echo "SDKMan installing development tools"
|
"$HOME/.scripts/load_macos_defaults.sh"
|
||||||
sdk install java
|
"$HOME/.scripts/configure_etc_hosts.sh"
|
||||||
sdk install gradle
|
"$HOME/.scripts/pythondeps.sh"
|
||||||
sdk install java 8.0.222-zulu
|
"$HOME/.scripts/install_baton.sh"
|
||||||
sdk install kotlin
|
"$HOME/.scripts/rustdeps.sh"
|
||||||
echo "SDKMan updating"
|
"$HOME/.scripts/npmdeps.sh"
|
||||||
sdk selfupdate
|
|
||||||
}
|
|
||||||
function installRubyOnLinux() {
|
|
||||||
if [ "$IS_LINUX" = true ]; then
|
|
||||||
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
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install bundler for managing ruby dependencies and Gemfile
|
|
||||||
function installBundler() {
|
|
||||||
echo "Installing bundler for managing ruby dependencies and Gemfile"
|
|
||||||
sudo gem install bundler
|
|
||||||
bundle install
|
|
||||||
}
|
|
||||||
|
|
||||||
# Install Oh My Zsh and some cool dependencies
|
|
||||||
function installOhMyZsh() {
|
|
||||||
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
|
|
||||||
}
|
|
||||||
function installVimPlugins() {
|
|
||||||
echo "Installing Vundle + VIM Plugins"
|
|
||||||
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
|
||||||
vim +'PluginInstall --sync' +qa >/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
|
|
||||||
function installNoMoreSecrets() {
|
|
||||||
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
|
|
||||||
function overrideMacOsDefaults() {
|
|
||||||
if [ "$IS_MAC" = true ]; then
|
|
||||||
echo "(Mac OS X) Loading preferences"
|
|
||||||
sudo sh .macos
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Customize /etc/hosts
|
|
||||||
function overrideEtcHosts() {
|
|
||||||
echo "Overriding /etc/hosts"
|
|
||||||
curl https://someonewhocares.org/hosts/hosts -o /etc/hosts
|
|
||||||
}
|
|
||||||
|
|
||||||
function installSoftware() {
|
|
||||||
# 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
|
|
||||||
if [ "$IS_MAC" = true ]; then
|
|
||||||
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"
|
|
||||||
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
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
terraform-docs completion zsh >/usr/local/share/zsh/site-functions/_terraform-docs
|
terraform-docs completion zsh >/usr/local/share/zsh/site-functions/_terraform-docs
|
||||||
autoload -U compinit && compinit
|
autoload -U compinit && compinit
|
||||||
|
|
||||||
go get -u -v github.com/jessfraz/dockfmt
|
"$HOME/.scripts/godeps.sh"
|
||||||
go get -u -v github.com/dmlittle/scenery
|
"$HOME/.scripts/install_weavescope.sh"
|
||||||
go get -u -v github.com/camptocamp/terraboard
|
"$HOME/.scripts/install_bashtop.sh"
|
||||||
|
"$HOME/.scripts/install_awsls.sh"
|
||||||
sudo curl -L git.io/scope -o /usr/local/bin/scope
|
"$HOME/.scripts/install_bach.sh" # Bash testing framework
|
||||||
sudo chmod a+x /usr/local/bin/scope
|
"$HOME/.scripts/install_broot.sh"
|
||||||
}
|
"$HOME/.scripts/configure_git_hooks.sh"
|
||||||
|
"$HOME/.scripts/upgrade.sh"
|
||||||
# Upgrade
|
"$HOME/.scripts/reload.sh"
|
||||||
function upgradeSoftware() {
|
|
||||||
echo "Upgrading apps"
|
|
||||||
~/.scripts/upgrade.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# Reload
|
|
||||||
function reloadConfig() {
|
|
||||||
echo "Reloading config"
|
|
||||||
~/.scripts/reload.sh
|
|
||||||
}
|
|
||||||
|
|
||||||
function doIt() {
|
|
||||||
installLinuxPackages;
|
|
||||||
installBrew;
|
|
||||||
createSymbolicLinks;
|
|
||||||
installMacSoftware;
|
|
||||||
installLinuxSoftware;
|
|
||||||
switchToZsh;
|
|
||||||
installSDKMan;
|
|
||||||
installRubyOnLinux;
|
|
||||||
installBundler;
|
|
||||||
installOhMyZsh;
|
|
||||||
installVimPlugins;
|
|
||||||
installNoMoreSecrets;
|
|
||||||
overrideMacOsDefaults;
|
|
||||||
overrideEtcHosts;
|
|
||||||
installSoftware;
|
|
||||||
upgradeSoftware;
|
|
||||||
reloadConfig;
|
|
||||||
}
|
|
||||||
|
|
||||||
doIt;
|
|
||||||
|
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
|
#!/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() {
|
function _checkci() {
|
||||||
local username
|
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}"
|
local jenkinsfile="${1:-Jenkinsfile}"
|
||||||
curl --user "$username:$JENKINS_SECRET" -X POST -F "jenkinsfile=<$jenkinsfile" "$JENKINS_URL/pipeline-model-converter/validate"
|
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
|
#!/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,6 +1,12 @@
|
|||||||
#!/usr/bin/env zsh
|
#!/usr/bin/env zsh
|
||||||
export SDKMAN_DIR="$HOME/.sdkman"
|
export SDKMAN_DIR="$HOME/.sdkman"
|
||||||
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||||
|
|
||||||
|
# shellcheck disable
|
||||||
|
|
||||||
|
# Reload
|
||||||
|
echo "Reloading config"
|
||||||
|
|
||||||
chmod +x ~/.scripts/*.sh
|
chmod +x ~/.scripts/*.sh
|
||||||
source ~/.zshrc
|
source ~/.zshrc
|
||||||
sdk use java 8.0.222-zulu
|
sdk use java 8.0.222-zulu
|
||||||
|
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"
|
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||||
sdk selfupdate
|
sdk selfupdate
|
||||||
|
|
||||||
|
# Upgrade
|
||||||
|
echo "Upgrading apps"
|
||||||
|
|
||||||
# Upgrading HomeBrew stuff
|
# Upgrading HomeBrew stuff
|
||||||
case "$(uname -s)" in
|
case "$(uname -s)" in
|
||||||
Darwin)
|
Darwin)
|
||||||
@ -16,11 +19,13 @@ esac
|
|||||||
bundle update --all
|
bundle update --all
|
||||||
#gem update --system
|
#gem update --system
|
||||||
#gem update asciidoctor-pdf t
|
#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 pip install --upgrade pip 2>/dev/null
|
||||||
sudo pip3 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
|
pip freeze >~/requirements.txt
|
||||||
# Update VIM plugins installed via Vundle https://github.com/VundleVim/Vundle.vim
|
# Update VIM plugins installed via Vundle https://github.com/VundleVim/Vundle.vim
|
||||||
vim +PluginUpdate +qall >/dev/null
|
vim +PluginUpdate +qall >/dev/null
|
||||||
rustup-update
|
rustup update
|
||||||
|
npm update -g moro
|
||||||
|
pre-commit autoupdate
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
vim --version | head -1
|
vim --version H -1
|
||||||
rustc --version
|
rustc --version
|
||||||
npm --version
|
npm --version
|
||||||
bats --version
|
bats --version
|
||||||
@ -19,12 +19,12 @@ python3 --version
|
|||||||
docker --version
|
docker --version
|
||||||
openssl version
|
openssl version
|
||||||
git --version
|
git --version
|
||||||
atlas-version | grep Version | head -n 1
|
atlas-version G Version H -n 1
|
||||||
|
|
||||||
export SDKMAN_DIR="$HOME/.sdkman"
|
export SDKMAN_DIR="$HOME/.sdkman"
|
||||||
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
||||||
sdk --version
|
sdk --version
|
||||||
tac --version | head -n 1
|
tac --version H -n 1
|
||||||
k9s version
|
k9s version
|
||||||
tfsec --version
|
tfsec --version
|
||||||
aws-iam-authenticator 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'
|
Plugin 'scrooloose/nerdtree'
|
||||||
" A plugin of NERDTree showing git status
|
" A plugin of NERDTree showing git status
|
||||||
Plugin 'Xuyuanp/nerdtree-git-plugin'
|
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.
|
" A Vim plugin which shows a git diff in the gutter (sign column) and stages/undoes hunks and partial hunks.
|
||||||
Plugin 'airblade/vim-gitgutter'
|
Plugin 'airblade/vim-gitgutter'
|
||||||
" Jenkinsfile DSL Vim Syntax
|
" Jenkinsfile DSL Vim Syntax
|
||||||
@ -57,6 +63,14 @@ Plugin 'mbbill/undotree'
|
|||||||
Plugin 'farmergreg/vim-lastplace'
|
Plugin 'farmergreg/vim-lastplace'
|
||||||
" Add icons to your plugins
|
" Add icons to your plugins
|
||||||
Plugin 'ryanoasis/vim-devicons'
|
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
|
" All of your Plugins must be added before the following line
|
||||||
call vundle#end()
|
call vundle#end()
|
||||||
@ -97,12 +111,28 @@ let g:ale_use_global_executables = 1
|
|||||||
let g:ale_fix_on_save = 1
|
let g:ale_fix_on_save = 1
|
||||||
let g:ale_completion_enabled = 1
|
let g:ale_completion_enabled = 1
|
||||||
let g:ale_open_list = 1
|
let g:ale_open_list = 1
|
||||||
let g:ale_fixers = {
|
"\ 'yaml': ['prettier'],
|
||||||
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
|
||||||
\ 'python': ['black'],
|
"let g:ale_fixers = {
|
||||||
\ 'rust': ['rustfmt'],
|
"\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||||
\ 'Jenkinsfile': ['checkci'],
|
"\ '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
|
" Enable syntax highlighting
|
||||||
syntax on
|
syntax on
|
||||||
@ -150,12 +180,16 @@ set tabstop=4
|
|||||||
set shiftwidth=4
|
set shiftwidth=4
|
||||||
" On pressing tab, insert 4 spaces
|
" On pressing tab, insert 4 spaces
|
||||||
set expandtab
|
set expandtab
|
||||||
|
" Enable spell checking
|
||||||
|
set spell
|
||||||
|
|
||||||
" Default colors for highlighting search result
|
" Default colors for highlighting search result
|
||||||
hi Search ctermfg=White
|
hi Search ctermfg=White
|
||||||
hi Search ctermbg=DarkMagenta
|
hi Search ctermbg=DarkMagenta
|
||||||
|
|
||||||
" test cheat.sh integration with VIM
|
" 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=" "
|
let mapleader=" "
|
||||||
|
|
||||||
" map a specific key or shortcut to open NERDTree
|
" 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_ocaml_checkers = ['merlin']
|
||||||
let g:syntastic_python_checkers = ['pylint']
|
let g:syntastic_python_checkers = ['pylint']
|
||||||
let g:syntastic_shell_checkers = ['shellcheck']
|
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+=%#warningmsg#
|
||||||
set statusline+=%{SyntasticStatuslineFlag()}
|
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_open = 1
|
||||||
let g:syntastic_check_on_wq = 0
|
let g:syntastic_check_on_wq = 0
|
||||||
au BufNewFile,BufRead Jenkinsfile setf groovy
|
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
|
# Example aliases
|
||||||
# alias zshconfig="mate ~/.zshrc"
|
# alias zshconfig="mate $HOME/.zshrc"
|
||||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
# alias ohmyzsh="mate $HOME/.oh-my-zsh"
|
||||||
#
|
#
|
||||||
|
|
||||||
# Git, dotfiles, ripgrep, Node.JS
|
chmod +x $HOME/.aliases/*
|
||||||
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'
|
|
||||||
|
|
||||||
# Jira
|
# Git
|
||||||
alias jirasearch='issues'
|
source "$HOME/.aliases/git.sh"
|
||||||
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\""
|
# Docker
|
||||||
alias bakclogs='backlogs'
|
alias lzd='lazydocker'
|
||||||
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"
|
# PM : Jira & trello & asana & moro
|
||||||
alias lastissues='jira issue jql "project IN (CICD) AND Created > -2w ORDER BY Created DESC, Priority DESC"'
|
source "$HOME/.aliases/backlog.sh"
|
||||||
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'
|
|
||||||
|
|
||||||
# News
|
# News
|
||||||
alias hack='hacker'
|
source "$HOME/.aliases/news.sh"
|
||||||
alias crypto='curl rate.sx'
|
|
||||||
|
|
||||||
# Twitter
|
# Twitter
|
||||||
alias twitter='\t'
|
source "$HOME/.aliases/twitter.sh"
|
||||||
alias tsearch='twitter search all'
|
|
||||||
alias tweets='tsearch --long -a -d'
|
# RSS
|
||||||
alias tsearchfav='twitter search favorites'
|
source "$HOME/.aliases/rss.sh"
|
||||||
alias tsearchtimeline='twitter search timeline'
|
|
||||||
|
|
||||||
# Search
|
# Search
|
||||||
alias ddg='ddgr'
|
source "$HOME/.aliases/search.sh"
|
||||||
alias goo='googler'
|
|
||||||
alias se='sr -elvi'
|
|
||||||
alias engines='sr -elvi'
|
|
||||||
|
|
||||||
# Events
|
# Events
|
||||||
alias agenda='calendar'
|
alias agenda='calendar'
|
||||||
@ -58,105 +32,74 @@ alias mails="gmail && gmail2"
|
|||||||
alias mailperso="gmail2"
|
alias mailperso="gmail2"
|
||||||
alias mailpro="gmail"
|
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
|
# Management / Security / SSH / SSL
|
||||||
alias mgmt='ssh $(whoami)@$PROXY_HOST -i ~/.ssh/id_ed25519'
|
source "$HOME/.aliases/secure.sh"
|
||||||
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'
|
|
||||||
|
|
||||||
# Network
|
# Network
|
||||||
alias ip='echo $(curl ident.me -4 2>/dev/null)'
|
source "$HOME/.aliases/network.sh"
|
||||||
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"'
|
|
||||||
|
|
||||||
# Misc
|
# Downloads
|
||||||
alias h='cd $HOME'
|
alias get="curl -O -L" # Download file and save it with filename of remote file
|
||||||
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'
|
|
||||||
|
|
||||||
|
# Files & folder tricks
|
||||||
|
source "$HOME/.aliases/files.sh"
|
||||||
|
|
||||||
alias path='echo -e ${PATH//:/\\n}' # Explode and display current PATH
|
# System Utils
|
||||||
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'
|
|
||||||
alias systeminfo='neofetch'
|
alias systeminfo='neofetch'
|
||||||
alias monitoring='glances'
|
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 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 unix='curl -L http://git.io/unix'
|
||||||
alias coffee="curl -L http://git.io/coffee"
|
alias coffee="curl -L http://git.io/coffee"
|
||||||
alias hotcoffee="curl -sL git.io/hotcoffee | sh"
|
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
|
# Music
|
||||||
alias music='baton'
|
source "$HOME/.aliases/music.sh"
|
||||||
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'
|
|
||||||
|
|
||||||
# K8S
|
# K8S
|
||||||
alias k9s='COLORTERM=256bit k9s --all-namespaces'
|
alias k9s='COLORTERM=256bit k9s --all-namespaces'
|
||||||
alias 9=k9s
|
alias 9=k9s
|
||||||
alias K=k9s
|
alias K=k9s
|
||||||
|
|
||||||
# Show/hide hidden files in Finder
|
# Macos specifics
|
||||||
alias show="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder"
|
case "$(uname -s)" in
|
||||||
alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false && killall Finder"
|
Darwin)
|
||||||
|
source "$HOME/.aliases/macos.sh"
|
||||||
# Hide/show all desktop icons (useful when presenting)
|
;;
|
||||||
alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
|
esac
|
||||||
alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
|
|
||||||
|
|
||||||
# Flush Directory Service cache
|
|
||||||
alias flush="dscacheutil -flushcache && killall -HUP mDNSResponder"
|
|
||||||
|
|
||||||
# This is the end ;( ... for now ;D
|
# 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() {
|
function google() {
|
||||||
open -na "Google Chrome" --args "https://www.google.com/search?q=$*"
|
browse "https://www.google.com/search?q=$*"
|
||||||
}
|
}
|
||||||
function stackoverflow() {
|
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() {
|
function github() {
|
||||||
open -na "Google Chrome" --args "https://github.com/search?q=$*"
|
browse "https://github.com/search?q=$*"
|
||||||
}
|
}
|
||||||
function hacker() {
|
function hacker() {
|
||||||
open -na "Google Chrome" --args "https://hn.algolia.com/?sort=byDate&query=$*"
|
browse "https://hn.algolia.com/?sort=byDate&query=$*"
|
||||||
}
|
}
|
||||||
function gmail() {
|
function gmail() {
|
||||||
open -na "Google Chrome" --args "https://mail.google.com/mail/u/0"
|
browse "https://mail.google.com/mail/u/0"
|
||||||
}
|
}
|
||||||
function gmail2() {
|
function gmail2() {
|
||||||
open -na "Google Chrome" --args "https://mail.google.com/mail/u/1"
|
browse "https://mail.google.com/mail/u/1"
|
||||||
}
|
}
|
||||||
function cicdboard() {
|
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() {
|
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() {
|
function issues() {
|
||||||
jira issue jql "status = Open AND text ~ \"$*\" ORDER BY Created DESC"
|
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 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"
|
|
||||||
}
|
|
||||||
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
|
|
||||||
}
|
|
||||||
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
|
|
||||||
}
|
|
||||||
function istherenewissues() {
|
function istherenewissues() {
|
||||||
LASTISSUE=$(newissues | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' | awk 'FNR==2{print $2}')
|
LASTISSUE=$(newissues | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g' | awk 'FNR==2{print $2}')
|
||||||
if [[ -f "$HOME/.newjiraissue" ]]
|
if [[ -f "$HOME/.newjiraissue" ]]; then
|
||||||
then
|
previous_jira_issue=$(\cat "$HOME/.newjiraissue" | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g') # the sed part is for removing output colors
|
||||||
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
|
if [ "$LASTISSUE" != "$previous_jira_issue" ]; then
|
||||||
newissues
|
newissues
|
||||||
else
|
else
|
||||||
echo "no new issue"
|
success "no new issue"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo "$LASTISSUE" >"$HOME/.newjiraissue"
|
echo "$LASTISSUE" >"$HOME/.newjiraissue"
|
||||||
}
|
}
|
||||||
function aboutpage() {
|
|
||||||
year=$(echo "$*" | egrep -Eo '\b[[:digit:]]{4}\b' | head -n1)
|
# Prolog / Logtalk
|
||||||
if [ -z "$year" ]
|
function logtalk() {
|
||||||
then
|
path_swilgt=$(find /usr/local/Cellar/logtalk -name "*swilgt.sh" 2>/dev/null)
|
||||||
year=$(curl -sSL "$*" | tr '<' '\r' | \egrep -i "date|datetime" -A 1 | \grep -Eo '\b[[:digit:]]{4}\b' | head -n1)
|
sh "$path_swilgt"
|
||||||
|
}
|
||||||
|
|
||||||
|
# History / Aliases helpers
|
||||||
|
function top_commands() {
|
||||||
|
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() {
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
# 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
|
||||||
|
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
|
||||||
author=$(curl -sSL "$*" | tr '<' '\r' | \egrep -i "author" -A 1 | \grep -Eo '([A-Z][A-Za-z]+\s([A-Za-z ]+)*)' | head -n1)
|
fi
|
||||||
title=$(curl -sSL "$*" | tr '<' '<\n' | \grep title -A 1 | head -n1 | sed -E 's/.*<title>(.*)<\/title>.*/\1/' | sed "s/ [^[:alnum:]]*$author//")
|
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 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
|
||||||
|
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))
|
yearint=$(($year + 0))
|
||||||
currentyear=$(echo `date +"%Y"`)
|
currentyear=$(echo $(date +"%Y"))
|
||||||
if [ ! -z "$author" ]
|
if [ ! -z "$author" ]; then
|
||||||
then
|
|
||||||
echo "by $author"
|
echo "by $author"
|
||||||
fi
|
fi
|
||||||
if [ ! -z "$title" ]
|
if [ ! -z "$title" ]; then
|
||||||
then
|
|
||||||
echo "-> $title"
|
echo "-> $title"
|
||||||
fi
|
fi
|
||||||
if [[ $yearint -ge 1970 && $yearint -le $currentyear ]]
|
if [[ $yearint -ge 1970 && $yearint -le $currentyear ]]; then
|
||||||
then
|
|
||||||
echo "$yearint"
|
echo "$yearint"
|
||||||
fi
|
fi
|
||||||
if [ ! -z "$title" ] && [ ! -z "$author" ] && [[ $yearint -ge 1970 && $yearint -le $currentyear ]]; then
|
if [ ! -z "$title" ] && [ ! -z "$author" ] && [[ $yearint -ge 1970 && $yearint -le $currentyear ]]; then
|
||||||
@ -114,11 +283,12 @@ function col() {
|
|||||||
}
|
}
|
||||||
# Skip first x words in line
|
# Skip first x words in line
|
||||||
# via https://blog.developer.atlassian.com/ten-tips-for-wonderful-bash-productivity/
|
# via https://blog.developer.atlassian.com/ten-tips-for-wonderful-bash-productivity/
|
||||||
function skip {
|
function skip() {
|
||||||
n=$(($1 + 1))
|
n=$(($1 + 1))
|
||||||
cut -d' ' -f$n-
|
cut -d' ' -f$n-
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Code search / stats helpers
|
||||||
cmd_loc="find . -type f \( \
|
cmd_loc="find . -type f \( \
|
||||||
-name '*.py' \
|
-name '*.py' \
|
||||||
-o -name '*.rb' \
|
-o -name '*.rb' \
|
||||||
@ -128,31 +298,108 @@ cmd_loc="find . -type f \( \
|
|||||||
-o -name '*.c' -o -name '*.h' \
|
-o -name '*.c' -o -name '*.h' \
|
||||||
-o -name '*.js' \
|
-o -name '*.js' \
|
||||||
-o -name '*.tsx' \
|
-o -name '*.tsx' \
|
||||||
|
-o -name '*.sh' \
|
||||||
-o -name '*.md' \
|
-o -name '*.md' \
|
||||||
-o -name '*.xml' \
|
-o -name '*.xml' \
|
||||||
|
-o -name '*.yaml' -o -name '*.yml' \
|
||||||
-o -name '*.groovy' \
|
-o -name '*.groovy' \
|
||||||
-o -name '*.gradle' \
|
-o -name '*.gradle' \
|
||||||
-o -name '*.properties' \
|
-o -name '*.properties' \
|
||||||
\) -exec \cat \{\} \; | LANG=C LC_CTYPE=C sed -e 's/^[ \t]*//;s/[ \t]*$//'"
|
\) -exec \cat \{\} \; | LANG=C LC_CTYPE=C sed -e 's/^[ \t]*//;s/[ \t]*$//'"
|
||||||
|
|
||||||
# Unique lines of code
|
# Unique lines of code
|
||||||
# Via https://text.causal.agency/004-uloc.txt
|
# Via https://text.causal.agency/004-uloc.txt
|
||||||
function uloc {
|
function uloc() {
|
||||||
eval "$cmd_loc | LANG=C LC_CTYPE=C sort -u | wc -l"
|
eval "$cmd_loc | LANG=C LC_CTYPE=C sort --unique | wc -l"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Top lines of code
|
# Top lines of code
|
||||||
function toploc {
|
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"
|
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
|
# Find files bigger than X size and sort them by size
|
||||||
function biggerthan() {
|
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
|
# To automatically ls when changing directory
|
||||||
function cd() {
|
function cd() {
|
||||||
builtin cd "$@" && ls -latr
|
builtin cd "$@" && ll -atr
|
||||||
}
|
}
|
||||||
function mouse() {
|
function mouse() {
|
||||||
case "$(uname -s)" in
|
case "$(uname -s)" in
|
||||||
@ -161,21 +408,30 @@ function mouse() {
|
|||||||
;;
|
;;
|
||||||
esac
|
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() {
|
function meteo() {
|
||||||
curl "fr.wttr.in/$*"
|
curl "fr.wttr.in/$*"
|
||||||
}
|
}
|
||||||
function how_in() {
|
|
||||||
where="$1"; shift
|
|
||||||
IFS=+ curl "cht.sh/${where}/$*"
|
|
||||||
}
|
|
||||||
function rate() {
|
function rate() {
|
||||||
curl "http://rate.sx/$*"
|
curl "http://rate.sx/$*"
|
||||||
}
|
}
|
||||||
transfer() {
|
|
||||||
|
# Uploaders
|
||||||
|
function transfer() {
|
||||||
# check arguments
|
# check arguments
|
||||||
if [ $# -eq 0 ];
|
if [ $# -eq 0 ]; then
|
||||||
then
|
warning "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"
|
||||||
echo "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md"
|
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -185,18 +441,15 @@ transfer() {
|
|||||||
# upload stdin or file
|
# upload stdin or file
|
||||||
file=$1
|
file=$1
|
||||||
|
|
||||||
if tty -s;
|
if tty -s; then
|
||||||
then
|
|
||||||
basefile=$(basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g')
|
basefile=$(basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g')
|
||||||
|
|
||||||
if [ ! -e $file ];
|
if [ ! -e $file ]; then
|
||||||
then
|
error "File $file doesn't exists."
|
||||||
echo "File $file doesn't exists."
|
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d $file ];
|
if [ -d $file ]; then
|
||||||
then
|
|
||||||
# zip directory and transfer
|
# zip directory and transfer
|
||||||
zipfile=$(mktemp -t transferXXX.zip)
|
zipfile=$(mktemp -t transferXXX.zip)
|
||||||
cd $(dirname $file) && zip -r -q - $(basename $file) >>$zipfile
|
cd $(dirname $file) && zip -r -q - $(basename $file) >>$zipfile
|
||||||
@ -216,31 +469,18 @@ transfer() {
|
|||||||
# cleanup
|
# cleanup
|
||||||
rm -f $tmpfile
|
rm -f $tmpfile
|
||||||
}
|
}
|
||||||
# Where is a function defined?
|
|
||||||
function whichfunc() {
|
|
||||||
whence -v $1
|
|
||||||
type -a $1
|
|
||||||
}
|
|
||||||
|
|
||||||
# git shortcuts
|
function checkov() { docker run -i --rm -v "$(pwd):/tf" bridgecrew/checkov -d /tf "$@"; }
|
||||||
function gcrb {
|
function vimat() {
|
||||||
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 {
|
|
||||||
vim +/$1 $2
|
vim +/$1 $2
|
||||||
}
|
}
|
||||||
function copyhooks {
|
function httperr() {
|
||||||
cp -f ~/.git-template/.pre-commit-config.yaml ./
|
curl --silent "https://http.cat/$1" | imgcat
|
||||||
pre-commit install --install-hooks --overwrite
|
|
||||||
pre-commit run -a
|
|
||||||
}
|
}
|
||||||
function httperr {
|
|
||||||
curl -s "https://http.cat/$1" | imgcat
|
# Config / Infra as code
|
||||||
}
|
function terraform-compliance() { docker run --rm -v "$(pwd):/target" -i -t eerkunt/terraform-compliance "$@"; }
|
||||||
function terragrunt_color {
|
function terragrunt_color() {
|
||||||
BOLD=$(tput bold)
|
BOLD=$(tput bold)
|
||||||
BLACK=$(tput setaf 0)
|
BLACK=$(tput setaf 0)
|
||||||
RED=$(tput setaf 1)
|
RED=$(tput setaf 1)
|
||||||
@ -265,59 +505,269 @@ function terragrunt_color {
|
|||||||
-e "s/\( *.*: *\)\(\".*\"\)\( => \)\(\".*\"\)/${YELLOW}\1${RED}\2${BLACK}\3${GREEN}\4${RESET}/" \
|
-e "s/\( *.*: *\)\(\".*\"\)\( => \)\(\".*\"\)/${YELLOW}\1${RED}\2${BLACK}\3${GREEN}\4${RESET}/" \
|
||||||
-e "s/\( *.*: *\".*\"\)/${GREEN}\1${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
|
if [ -d "$REPO_PATH" ]; then
|
||||||
REPO_PATH="$(pwd)"
|
REPO_PATH="$(pwd)"
|
||||||
fi
|
fi
|
||||||
local preview='lsd --color always --icon always --group-dirs first {}'
|
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
|
if [[ -n "$dir" ]]; then
|
||||||
cd "$dir"
|
cd "$dir" || exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
function jenkins-cli {
|
function gitignorefor() {
|
||||||
local script_location=$(find $HOME/code/jenkins-cloudbees-core -name "jenkins-cli.sh")
|
local language=${1:-''}
|
||||||
eval "$script_location $*"
|
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'
|
# Miscellaneous helpers
|
||||||
}
|
function colorpic() {
|
||||||
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 {
|
|
||||||
local picture_url="$1"
|
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)
|
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"
|
success "Generated $result_url"
|
||||||
echo "Display in progress..."
|
arrow "Display in progress..."
|
||||||
eval "\curl -s $result_url | imgcat"
|
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"
|
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,
|
# 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
|
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||||
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
||||||
|
#
|
||||||
ZSH_THEME="powerlevel10k/powerlevel10k"
|
ZSH_THEME="powerlevel10k/powerlevel10k"
|
||||||
ZSH_COLORIZE_STYLE="monokai"
|
ZSH_COLORIZE_STYLE="monokai"
|
||||||
|
|
||||||
@ -30,7 +31,6 @@ POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs command_execution_tim
|
|||||||
POWERLEVEL9K_SHOW_CHANGESET=true
|
POWERLEVEL9K_SHOW_CHANGESET=true
|
||||||
POWERLEVEL9K_CHANGESET_HASH_LENGTH=8
|
POWERLEVEL9K_CHANGESET_HASH_LENGTH=8
|
||||||
|
|
||||||
|
|
||||||
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=''
|
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR=''
|
||||||
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR=''
|
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR=''
|
||||||
|
|
||||||
@ -38,13 +38,11 @@ POWERLEVEL9K_TIME_FOREGROUND='245'
|
|||||||
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND='245'
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND='245'
|
||||||
POWERLEVEL9K_STATUS_OK_FOREGROUND='green'
|
POWERLEVEL9K_STATUS_OK_FOREGROUND='green'
|
||||||
POWERLEVEL9k_STATUS_ERROR_FOREGROUND='red'
|
POWERLEVEL9k_STATUS_ERROR_FOREGROUND='red'
|
||||||
POWERLEVEL9k_STATUS_ERROR_FOREGROUND='red'
|
|
||||||
|
|
||||||
POWERLEVEL9K_TIME_BACKGROUND='clear'
|
POWERLEVEL9K_TIME_BACKGROUND='clear'
|
||||||
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='clear'
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='clear'
|
||||||
POWERLEVEL9K_STATUS_OK_BACKGROUND='clear'
|
POWERLEVEL9K_STATUS_OK_BACKGROUND='clear'
|
||||||
POWERLEVEL9K_STATUS_ERROR_BACKGROUND='clear'
|
POWERLEVEL9K_STATUS_ERROR_BACKGROUND='clear'
|
||||||
POWERLEVEL9K_STATUS_ERROR_BACKGROUND='clear'
|
|
||||||
POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND='clear'
|
POWERLEVEL9K_CONTEXT_DEFAULT_BACKGROUND='clear'
|
||||||
|
|
||||||
# Set list of themes to pick from when loading at random
|
# 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/
|
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
||||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
# Add wisely, as too many plugins slow down shell startup.
|
# 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
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
# User configuration
|
# User configuration
|
||||||
@ -128,9 +126,26 @@ export BW_SESSION=""
|
|||||||
export JENKINS_URL=""
|
export JENKINS_URL=""
|
||||||
export JENKINS_SECRET=""
|
export JENKINS_SECRET=""
|
||||||
export JIRA_URL=""
|
export JIRA_URL=""
|
||||||
|
export CONFLUENCE_URL=""
|
||||||
export PROXY_HOST=""
|
export PROXY_HOST=""
|
||||||
export COLORPIC_APIKEY=""
|
export COLORPIC_APIKEY=""
|
||||||
export VAULT_PASSWORD_FILE=""
|
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
|
if test -f "$HOME/.scripts/secrets.sh"; then
|
||||||
chmod +x "$HOME/.scripts/secrets.sh"
|
chmod +x "$HOME/.scripts/secrets.sh"
|
||||||
@ -148,8 +163,8 @@ eval "$(fasd --init auto)"
|
|||||||
|
|
||||||
#cm apply
|
#cm apply
|
||||||
|
|
||||||
# check if we have new jira issues
|
# randomly check if we have new jira issues
|
||||||
istherenewissues
|
runiflucky "istherenewissues"
|
||||||
|
|
||||||
case "$(uname -s)" in
|
case "$(uname -s)" in
|
||||||
Darwin)
|
Darwin)
|
||||||
@ -162,11 +177,10 @@ esac
|
|||||||
export SDKMAN_DIR="$HOME/.sdkman"
|
export SDKMAN_DIR="$HOME/.sdkman"
|
||||||
[[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh"
|
[[ -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
|
case "$(uname -s)" in
|
||||||
Darwin)
|
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"
|
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
|
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.
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
||||||
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
||||||
|
|
||||||
|
source /Users/morganwattiez/.config/broot/launcher/bash/br
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
|
|
||||||
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
|
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
|
||||||
export SDKMAN_DIR="$HOME/.sdkman"
|
export SDKMAN_DIR="/Users/morganwattiez/.sdkman"
|
||||||
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
|
[[ -s "/Users/morganwattiez/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/morganwattiez/.sdkman/bin/sdkman-init.sh"
|
||||||
|
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_ed25519
|
||||||
IdentityFile ~/.ssh/id_rsa
|
IdentityFile ~/.ssh/id_rsa
|
||||||
ServerAliveInterval 3600
|
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
|
appdirs==1.4.3
|
||||||
appnope==0.1.0
|
appnope==0.1.0
|
||||||
argcomplete==1.10.0
|
argcomplete==1.10.0
|
||||||
|
arrow==0.15.5
|
||||||
asn1crypto==1.2.0
|
asn1crypto==1.2.0
|
||||||
astroid==2.3.3
|
astroid==2.3.3
|
||||||
attrs==19.3.0
|
attrs==19.3.0
|
||||||
Automat==0.8.0
|
Automat==0.8.0
|
||||||
autopep8==1.4.4
|
autopep8==1.4.4
|
||||||
awscli==1.16.278
|
|
||||||
backcall==0.1.0
|
backcall==0.1.0
|
||||||
beautifulsoup4==4.8.1
|
beautifulsoup4==4.9.1
|
||||||
|
beautysh==6.0.1
|
||||||
black==19.10b0
|
black==19.10b0
|
||||||
bleach==3.1.4
|
bleach==3.3.0
|
||||||
boto3==1.10.14
|
|
||||||
botocore==1.13.14
|
|
||||||
bs4==0.0.1
|
bs4==0.0.1
|
||||||
cachetools==3.1.1
|
cachetools==3.1.1
|
||||||
certifi==2019.9.11
|
castero==0.8.0
|
||||||
|
certifi==2020.6.20
|
||||||
cffi==1.13.2
|
cffi==1.13.2
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
Click==7.0
|
CJKwrap==2.2
|
||||||
|
click==7.1.2
|
||||||
colorama==0.4.1
|
colorama==0.4.1
|
||||||
colorzero==1.1
|
colorzero==1.1
|
||||||
configobj==5.0.6
|
configobj==5.0.6
|
||||||
@ -32,20 +34,21 @@ docutils==0.15.2
|
|||||||
entrypoints==0.3
|
entrypoints==0.3
|
||||||
flake8==3.7.9
|
flake8==3.7.9
|
||||||
future==0.18.2
|
future==0.18.2
|
||||||
|
gitlint==0.13.1
|
||||||
google-api-python-client==1.7.11
|
google-api-python-client==1.7.11
|
||||||
google-auth==1.7.0
|
|
||||||
google-auth-httplib2==0.0.3
|
google-auth-httplib2==0.0.3
|
||||||
|
google-auth==1.7.0
|
||||||
gpg==1.13.1
|
gpg==1.13.1
|
||||||
gpiozero==1.5.1
|
gpiozero==1.5.1
|
||||||
guizero==1.1.0
|
guizero==1.1.0
|
||||||
haxor-news==0.4.3
|
haxor-news==0.4.3
|
||||||
httplib2==0.18.0
|
httplib2==0.18.0
|
||||||
hyperlink==19.0.0
|
hyperlink==19.0.0
|
||||||
idna==2.8
|
idna==2.10
|
||||||
incremental==17.5.0
|
incremental==17.5.0
|
||||||
ipykernel==5.1.3
|
ipykernel==5.1.3
|
||||||
ipython==7.9.0
|
|
||||||
ipython-genutils==0.2.0
|
ipython-genutils==0.2.0
|
||||||
|
ipython==7.9.0
|
||||||
isort==4.3.21
|
isort==4.3.21
|
||||||
jedi==0.15.1
|
jedi==0.15.1
|
||||||
jmespath==0.9.4
|
jmespath==0.9.4
|
||||||
@ -54,7 +57,7 @@ jupyter-core==4.6.1
|
|||||||
kitchen==1.2.6
|
kitchen==1.2.6
|
||||||
kiwisolver==1.1.0
|
kiwisolver==1.1.0
|
||||||
lazy-object-proxy==1.4.3
|
lazy-object-proxy==1.4.3
|
||||||
lxml==4.4.1
|
lxml==4.6.5
|
||||||
matplotlib==3.1.1
|
matplotlib==3.1.1
|
||||||
mccabe==0.6.1
|
mccabe==0.6.1
|
||||||
mock==3.0.5
|
mock==3.0.5
|
||||||
@ -73,14 +76,18 @@ pigpio==1.44
|
|||||||
Pillow==6.2.1
|
Pillow==6.2.1
|
||||||
pipenv==2018.11.26
|
pipenv==2018.11.26
|
||||||
pkginfo==1.5.0.1
|
pkginfo==1.5.0.1
|
||||||
|
pocket==0.3.6
|
||||||
prompt-toolkit==2.0.10
|
prompt-toolkit==2.0.10
|
||||||
|
proselint==0.10.2
|
||||||
Protego==0.1.15
|
Protego==0.1.15
|
||||||
|
psutil==5.7.0
|
||||||
ptyprocess==0.6.0
|
ptyprocess==0.6.0
|
||||||
pyasn1==0.4.7
|
|
||||||
pyasn1-modules==0.2.7
|
pyasn1-modules==0.2.7
|
||||||
|
pyasn1==0.4.7
|
||||||
pycodestyle==2.5.0
|
pycodestyle==2.5.0
|
||||||
pycparser==2.19
|
pycparser==2.19
|
||||||
PyDispatcher==2.0.5
|
PyDispatcher==2.0.5
|
||||||
|
pyfiglet==0.8.post1
|
||||||
pyflakes==2.1.1
|
pyflakes==2.1.1
|
||||||
pygame==1.9.6
|
pygame==1.9.6
|
||||||
Pygments==2.4.2
|
Pygments==2.4.2
|
||||||
@ -89,35 +96,38 @@ pyhcl==0.4.0
|
|||||||
pylint==2.4.3
|
pylint==2.4.3
|
||||||
pyOpenSSL==19.0.0
|
pyOpenSSL==19.0.0
|
||||||
pyparsing==2.4.4
|
pyparsing==2.4.4
|
||||||
PyQt5==5.13.2
|
|
||||||
PyQt5-sip==12.7.0
|
PyQt5-sip==12.7.0
|
||||||
|
PyQt5==5.13.2
|
||||||
PyQtChart==5.13.1
|
PyQtChart==5.13.1
|
||||||
pyserial==3.4
|
pyserial==3.4
|
||||||
PySocks==1.7.1
|
PySocks==1.7.1
|
||||||
python-dateutil==2.8.1
|
python-dateutil==2.8.0
|
||||||
python-jenkins==1.5.0
|
python-jenkins==1.5.0
|
||||||
|
python-mpv==0.4.8
|
||||||
|
python-vlc==3.0.10114
|
||||||
pytz==2019.3
|
pytz==2019.3
|
||||||
PyYAML==5.1.2
|
PyYAML==5.1.2
|
||||||
pyzmq==18.1.0
|
pyzmq==18.1.0
|
||||||
QScintilla==2.11.3
|
QScintilla==2.11.3
|
||||||
qtconsole==4.5.5
|
qtconsole==4.5.5
|
||||||
queuelib==1.5.0
|
queuelib==1.5.0
|
||||||
|
rainbowstream==1.5.2
|
||||||
readme-renderer==24.0
|
readme-renderer==24.0
|
||||||
rebound-cli==2.0.0
|
rebound-cli==2.0.0
|
||||||
regex==2019.11.1
|
regex==2019.11.1
|
||||||
requests==2.22.0
|
relint==1.2.1
|
||||||
requests-futures==1.0.0
|
requests-futures==1.0.0
|
||||||
requests-toolbelt==0.9.1
|
requests-toolbelt==0.9.1
|
||||||
rsa==4.0
|
requests==2.24.0
|
||||||
|
rsa==3.4.2
|
||||||
rtv==1.27.0
|
rtv==1.27.0
|
||||||
s3transfer==0.2.1
|
|
||||||
saws==0.4.3
|
|
||||||
Scrapy==1.8.0
|
Scrapy==1.8.0
|
||||||
semver==2.9.0
|
semver==2.9.0
|
||||||
service-identity==18.1.0
|
service-identity==18.1.0
|
||||||
six==1.13.0
|
sh==1.12.14
|
||||||
|
six==1.15.0
|
||||||
slacker==0.13.0
|
slacker==0.13.0
|
||||||
soupsieve==1.9.5
|
soupsieve==2.0.1
|
||||||
stashy==0.6
|
stashy==0.6
|
||||||
stem==1.7.1
|
stem==1.7.1
|
||||||
toml==0.10.0
|
toml==0.10.0
|
||||||
@ -125,16 +135,135 @@ tornado==6.0.3
|
|||||||
torrequest==0.1.0
|
torrequest==0.1.0
|
||||||
tqdm==4.38.0
|
tqdm==4.38.0
|
||||||
traitlets==4.3.3
|
traitlets==4.3.3
|
||||||
|
tuir==1.29.0
|
||||||
Twisted==19.7.0
|
Twisted==19.7.0
|
||||||
|
twitter==1.18.0
|
||||||
typed-ast==1.4.0
|
typed-ast==1.4.0
|
||||||
uritemplate==3.0.0
|
uritemplate==3.0.0
|
||||||
urllib3==1.25.6
|
urllib3==1.25.9
|
||||||
urwid==2.0.1
|
urwid==2.0.1
|
||||||
virtualenv==16.7.7
|
vim-vint==0.3.21
|
||||||
virtualenv-clone==0.5.3
|
virtualenv-clone==0.5.3
|
||||||
|
virtualenv==16.7.7
|
||||||
w3lib==1.21.0
|
w3lib==1.21.0
|
||||||
wcwidth==0.1.7
|
wcwidth==0.1.7
|
||||||
webencodings==0.5.1
|
webencodings==0.5.1
|
||||||
websocket-client==0.56.0
|
websocket-client==0.56.0
|
||||||
wrapt==1.11.2
|
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