├── .bash_aliases ├── .bash_logout ├── .bashrc ├── .gitconfig ├── .gitglobalexclude ├── .gitignore ├── .gitmodules ├── .profile ├── .psqlrc ├── .ripgreprc ├── .screenrc ├── .tmux.conf ├── .vimrc ├── README.md ├── bin ├── $ ├── demo-bash ├── git-new ├── json_pp ├── remove-csi ├── slug └── tmux-start ├── dnsmasq ├── configure-lxd ├── localhost └── test ├── gh-extensions ├── README.md ├── gh-branches-checks │ └── gh-branches-checks └── gh-pr-update-description │ └── gh-pr-update-description ├── git-template ├── hooks │ └── post-checkout └── info │ └── exclude ├── install.sh ├── nginx └── sites.conf ├── php ├── fpm.www.conf └── my.ini └── vscode ├── keybindings.json ├── settings.json └── snippets ├── go.json ├── php.json └── rust.json /.bash_aliases: -------------------------------------------------------------------------------- 1 | alias sudo="sudo " # Hack, for sudo an aliases 2 | 3 | alias ls="ls --color" 4 | alias l="ls -lh --color" 5 | alias ll="ls -lh --color" 6 | alias lla="ll -a --color" 7 | 8 | alias df="df -h" 9 | alias du="du -h" 10 | alias free="free -m" 11 | 12 | alias cp="cp -i" 13 | alias mv="mv -i" 14 | 15 | alias grep='grep --color=tty' 16 | 17 | alias PS1="grep '#PS1' ~/.bashrc | sed 's/^#\(.*\)/\1/'" 18 | alias SYMFONY_IDE="echo SYMFONY_IDE=vscode://file%f:%l\\&/var/www\\>`pwd`" 19 | 20 | ## Notification 21 | 22 | alias n="notify-send" 23 | 24 | ## Apt 25 | alias agi="apt install" 26 | alias agua="apt update" 27 | alias agup="apt upgrade" 28 | alias aguap="apt update && apt upgrade" 29 | 30 | ## Archive 31 | alias untar="tar xvf" 32 | alias ungz="gunzip" 33 | alias unzip2="bzip2 -d" 34 | alias untargz="tar zxvf" 35 | alias untarbz1="tar jxvf" 36 | alias ungz2="bunzip2 -k" 37 | 38 | ## Docker 39 | alias docker-ip="docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'" 40 | alias docker-ips="docker ps -q | xargs -n 1 docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} {{ .Name }}' | sed 's/ \// /' | sort -n" 41 | alias docker-clear-logs='sudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log"' 42 | 43 | ## Cool shortcut 44 | alias top_process="ps -eo pcpu,pid,user,args | sort -k 1 -r -n | head -10" 45 | alias mysql="mysql --sigint-ignore --default-character-set=utf8 --auto-vertical-output" 46 | alias http="http --pretty=all" 47 | alias https="http --verify=no" 48 | alias whatsmyip="curl https://ifconfig.co/" 49 | alias whatsmypc="inxi -Fxz" 50 | 51 | ## Fun 52 | alias meteo="curl wttr.in/Paris?format=v2" 53 | 54 | ## PHP 55 | alias php_opcode='php -n -d "extension=vld.so" -d "vld.active=1" -d "vld.execute=0"' 56 | 57 | ## Random 58 | alias protips="code /home/gregoire/Dropbox/doc/CFP/idea/Protips.md" 59 | alias cloc_alternative="scc" # I never remember the name of the command 60 | -------------------------------------------------------------------------------- /.bash_logout: -------------------------------------------------------------------------------- 1 | # ~/.bash_logout: executed by bash(1) when login shell exits. 2 | 3 | # when leaving the console clear the screen to increase privacy 4 | 5 | if [ "$SHLVL" = 1 ]; then 6 | [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q 7 | fi 8 | -------------------------------------------------------------------------------- /.bashrc: -------------------------------------------------------------------------------- 1 | if [ -f ~/.bash_aliases ]; then 2 | . ~/.bash_aliases 3 | fi 4 | 5 | if [ -f ~/.bash_private ]; then 6 | . ~/.bash_private 7 | fi 8 | 9 | if [ -f /etc/bash_completion ] && ! shopt -oq posix; then 10 | . /etc/bash_completion 11 | fi 12 | 13 | [ -f ~/.fzf.bash ] && source ~/.fzf.bash 14 | 15 | PATH="./node_modules/.bin:$PATH" 16 | if [[ -d $HOME/.yarn/bin/ ]]; then 17 | PATH="$HOME/.yarn/bin:$PATH" 18 | fi 19 | 20 | if [[ -d /usr/local/go/bin ]]; then 21 | PATH="/usr/local/go/bin:$PATH" 22 | fi 23 | if [[ -d $HOME/dev/go ]]; then 24 | export GOPATH=$HOME/dev/go 25 | PATH="$GOPATH/bin:$PATH" 26 | fi 27 | 28 | if [[ -d $HOME/.cargo ]]; then 29 | . "$HOME/.cargo/env" 30 | fi 31 | 32 | if [[ -d $HOME/.local/bin/ ]]; then 33 | PATH="$HOME/.local/bin:$PATH" 34 | fi 35 | 36 | if [[ -d $HOME/dev/github.com ]]; then 37 | export CDPATH=".:$HOME:$HOME/dev/github.com" 38 | fi 39 | 40 | if [[ -f /usr/bin/terraform ]]; then 41 | complete -C /usr/bin/terraform terraform 42 | fi 43 | 44 | if [ -f $HOME/.ripgreprc ] ; then 45 | export RIPGREP_CONFIG_PATH=$HOME/.ripgreprc 46 | fi 47 | 48 | export GIT_PS1_SHOWDIRTYSTATE=true 49 | export GIT_PS1_SHOWUNTRACKEDFILES=true 50 | 51 | export HISTSIZE=50000 52 | export HISTFILESIZE=${HISTSIZE} 53 | export HISTIGNORE="ls:cd:[bf]g:exit" 54 | export HISTCONTROL="ignoreboth" # ignore duplicate line + line which start by a space 55 | 56 | export ANSIBLE_STDOUT_CALLBACK=debug 57 | export BUILDKIT_PROGRESS=plain 58 | 59 | export COMPOSE_DOCKER_CLI_BUILD=1 60 | export DOCKER_BUILDKIT=1 61 | 62 | if [[ `which most` ]]; then export PAGER=`which most` ; fi 63 | export LESS="FRSX" 64 | 65 | export EDITOR=`which vim` 66 | 67 | # 0 : normal, 1 : bold, 4 underline, nothing : background 68 | NoColor="\[\e[0m\]" 69 | Black="\[\e[00;30m\]" 70 | Red="\[\e[00;31m\]" 71 | Green="\[\e[00;32m\]" 72 | Yellow="\[\e[00;33m\]" 73 | Blue="\[\e[00;34m\]" 74 | Purple="\[\e[00;35m\]" 75 | Cyan="\[\e[00;36m\]" 76 | 77 | if [[ $UID -eq 0 ]]; then 78 | PROMPT_PREFIX="$Red\u@\H$NoColor" 79 | elif [[ $SSH_CONNECTION ]]; then 80 | PROMPT_PREFIX="$Yellow\u@\H$NoColor" 81 | fi 82 | 83 | type -t __git_ps1 &>/dev/null 84 | GIT=$? 85 | if [[ $GIT ]]; then 86 | PS1GIT=$Purple'$(__git_ps1 "(%s)")'$NoColor 87 | fi 88 | unset GIT 89 | 90 | function _set_exit_color() { 91 | if [[ $? != "0" ]]; then EXITCOLOR=$Red\>$NoColor; else EXITCOLOR=$Green\>$Nocolor; fi 92 | } 93 | 94 | function _truncate_pwd() { 95 | PWD2="${PWD/#$HOME/~}" 96 | local pwdmaxlen=$((${COLUMNS:-20}/5)) 97 | if [ ${#PWD2} -gt $pwdmaxlen ] ; then 98 | PWD2="…${PWD2: -$pwdmaxlen}" 99 | fi 100 | } 101 | 102 | PROMPT_COMMAND='_set_exit_color;history -a;_truncate_pwd;PS1="$EXITCOLOR$NoColor$PROMPT_PREFIX$Cyan$PWD2$NoColor$PS1GIT "' 103 | #PS1='\[\e[01;33m\]\u \[\e[00;32m\]\w\[\e[0m\] ' # simple 104 | #PS1='\[\e[01;31m\]\u@\H \[\e[00;32m\]\w\[\e[0m\] ' # simple - prod 105 | 106 | if [[ `which dircolors` ]]; then 107 | if [ -f ~/.dir_colors ]; then 108 | eval `dircolors --bourne-shell ~/.dir_colors` 109 | fi 110 | fi 111 | 112 | # Autocomple with sudo 113 | complete -cf sudo 114 | 115 | shopt -s cdspell # Pour que bash corrige automatiquement les fautes de frappes ex: cd ~/fiml sera remplacé par cd ~/film 116 | shopt -s checkwinsize # Pour que bash vérifie la taille de la fenêtre après chaque commande 117 | shopt -s cmdhist # Pour que bash sauve dans l'historique les commandes qui prennent plusieurs lignes sur une seule ligne. 118 | shopt -s expand_aliases # Pour que bash montre la commande complete au lieu de l'alias 119 | shopt -s extglob # Pour que bash interprète les expressions génériques 120 | shopt -s histappend # Pour que bash ajoute au lieu d'écraser dans l'histo 121 | shopt -s hostcomplete # Pour que bash tente de résoudre le nom pour les ip suivis d'un @ 122 | shopt -s nocaseglob # Pour que bash ne soit pas sensible a la casse 123 | 124 | man() { 125 | env \ 126 | LESS_TERMCAP_mb=$(printf "\e[1;31m") \ 127 | LESS_TERMCAP_md=$(printf "\e[1;31m") \ 128 | LESS_TERMCAP_me=$(printf "\e[0m") \ 129 | LESS_TERMCAP_se=$(printf "\e[0m") \ 130 | LESS_TERMCAP_so=$(printf "\e[1;41;37m") \ 131 | LESS_TERMCAP_ue=$(printf "\e[0m") \ 132 | LESS_TERMCAP_us=$(printf "\e[1;35m") \ 133 | man "$@" 134 | } 135 | 136 | # pnpm 137 | export PNPM_HOME="/home/gregoire/.local/share/pnpm" 138 | case ":$PATH:" in 139 | *":$PNPM_HOME:"*) ;; 140 | *) export PATH="$PNPM_HOME:$PATH" ;; 141 | esac 142 | # pnpm end 143 | 144 | # bun 145 | export BUN_INSTALL="$HOME/.bun" 146 | export PATH="$BUN_INSTALL/bin:$PATH" 147 | -------------------------------------------------------------------------------- /.gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | name = Grégoire Pineau 3 | email = lyrixx@lyrixx.info 4 | [alias] 5 | st = status 6 | ci = commit 7 | cim = commit -m "--" 8 | co = checkout 9 | br = branch -v 10 | bra = branch -v -a 11 | brc = ! git branch --no-color --merged | /bin/grep -v '*' | /bin/grep -v master | /bin/grep -v main | /bin/grep -v develop | xargs --no-run-if-empty git branch -d 12 | brcc = ! git br | rg --fixed-strings '[gone]' | awk '{ print $1 }' | xargs --no-run-if-empty git br -D 13 | lg = log --graph --pretty=tformat:'%Cred%h%Creset -%C(cyan)%d %Creset%s %Cgreen(%an %cr)%Creset' --abbrev-commit 14 | lga = log --graph --pretty=tformat:'%Cred%h%Creset -%C(cyan)%d %Creset%s %Cgreen(%an %cr)%Creset' --abbrev-commit --all 15 | di = diff -M 16 | sdi = diff --cached -M 17 | dis = diff --ignore-all-space -M 18 | cat = cat-file -p 19 | unstage = reset HEAD 20 | uncommit = update-ref HEAD HEAD^ 21 | uncommithard = reset --hard HEAD^ 22 | oups = commit --amend -C HEAD 23 | rebc = rebase --continue 24 | rebt = rebase --abort 25 | rebs = rebase --skip 26 | new = ! git-new "$@" 27 | php-lint = ! cd -- ${GIT_PREFIX:-.} && git status --short | /bin/grep -e '^[AUM ][UM ].*\\.php$' | awk '{print $2}' | xargs --no-run-if-empty -L 1 php -l 28 | php-cs-fixer = ! cd -- ${GIT_PREFIX:-.} && git status --short | /bin/grep -e '^[AUM ][UM ].*\\.php$' | awk '{print $2}' | xargs --no-run-if-empty -L 1 php $(which php-cs-fixer) fix --quiet 29 | eslint = ! cd -- ${GIT_PREFIX:-.} && git status --short | /bin/grep -e '^[AUM ][UM ].*\\.\\(js\\|jsx\\|ts\\|tsx\\)$' | awk '{print $2}' | xargs --no-run-if-empty -L 1 eslint --fix 30 | notes-fetch = fetch origin refs/notes/*:refs/notes/* 31 | notes-push = push origin refs/notes/* 32 | daily = log --no-merges --all --author='Grégoire Pineau' --since='midnight yesterday' --format='%s' 33 | reopen = ! git diff-tree --no-commit-id -r ${1:-HEAD} | cut -d ' ' -f 5-6 | /bin/grep -v "^D" | awk '{print $2}' | xargs --no-run-if-empty code 34 | open = ! git status -s --no-renames | /bin/grep -v "^D" | awk '{print $2}' | xargs --no-run-if-empty code 35 | open-conflict = ! git status -s | /bin/grep ^UU | awk '{print $2}' | xargs --no-run-if-empty code 36 | ignored = ! git ls-files -v | /bin/grep '^[[:lower:]]' 37 | ghost = commit --allow-empty --allow-empty-message -m "" 38 | [color] 39 | ui = true 40 | [core] 41 | autocrlf = input 42 | excludesfile = ~/.gitglobalexclude 43 | pager = less -F -X 44 | [branch] 45 | autosetupmerge = false 46 | rebase = true 47 | [diff] 48 | algorithm = histogram 49 | [commit] 50 | verbose = true 51 | [merge] 52 | summary = true 53 | conflictstyle = zdiff3 54 | [rebase] 55 | updateRefs = true 56 | autosquash = true 57 | autostash = true 58 | [rerere] 59 | enabled = true 60 | [github] 61 | user = lyrixx 62 | [push] 63 | default = tracking 64 | autoSetupRemote = true 65 | [include] 66 | path = ~/.private-gitconfig 67 | [init] 68 | templatedir = ~/.git-template 69 | defaultBranch = main 70 | [status] 71 | showUntrackedFiles = all 72 | [fetch] 73 | prune = true 74 | [tag] 75 | sort = version:refname 76 | [remote "origin"] 77 | # fetch = +refs/pull/*:refs/remotes/origin/pull/* 78 | # [remote "upstream"] 79 | # fetch = +refs/pull/*:refs/remotes/upstream/pull/* 80 | [pull] 81 | rebase = true 82 | [help] 83 | autocorrect = 1 84 | -------------------------------------------------------------------------------- /.gitglobalexclude: -------------------------------------------------------------------------------- 1 | .fab_tasks~ 2 | .php_cs.cache 3 | .vscode 4 | *.backup 5 | *.sql 6 | *.sql.tgz 7 | cov/ 8 | coverage/ 9 | greg 10 | issue.md 11 | PRIVATE.md 12 | public/debug.* 13 | secrets.md 14 | test.js 15 | test.php 16 | test.sh 17 | web/debug.* 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.private-gitconfig 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dircolors-solarized"] 2 | path = vendor/dircolors-solarized 3 | url = https://github.com/seebi/dircolors-solarized.git 4 | [submodule "vendor/solarized-mate-terminal"] 5 | path = vendor/solarized-mate-terminal 6 | url = https://github.com/oz123/solarized-mate-terminal 7 | -------------------------------------------------------------------------------- /.profile: -------------------------------------------------------------------------------- 1 | # ~/.profile: executed by the command interpreter for login shells. 2 | # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login 3 | # exists. 4 | # see /usr/share/doc/bash/examples/startup-files for examples. 5 | # the files are located in the bash-doc package. 6 | 7 | # the default umask is set in /etc/profile; for setting the umask 8 | # for ssh logins, install and configure the libpam-umask package. 9 | #umask 022 10 | 11 | # if running bash 12 | if [ -n "$BASH_VERSION" ]; then 13 | if [ -f "$HOME/.bashrc" ]; then 14 | . "$HOME/.bashrc" 15 | fi 16 | fi 17 | -------------------------------------------------------------------------------- /.psqlrc: -------------------------------------------------------------------------------- 1 | \set PROMPT1 '%n@%/%R%[%033[0m%]%# ' 2 | \set PROMPT2 '' 3 | \pset null '[NULL]' 4 | \x auto 5 | \set VERBOSITY verbose 6 | \set HISTFILE ~/.psql_history- :DBNAME- :PORT 7 | \set HISTCONTROL ignoredups 8 | \set COMP_KEYWORD_CASE upper 9 | -------------------------------------------------------------------------------- /.ripgreprc: -------------------------------------------------------------------------------- 1 | --smart-case 2 | --hidden 3 | --glob=!.git 4 | --sort=path 5 | -------------------------------------------------------------------------------- /.screenrc: -------------------------------------------------------------------------------- 1 | # Global 2 | altscreen on 3 | autodetach on 4 | startup_message off 5 | vbell off 6 | 7 | # Change default scrollback value for new windows 8 | defscrollback 20000 9 | 10 | # Caption 11 | caption always "%{Yb} %02d-%02m-%Y %0c %{k}|%{C} %H %{k}|%{G} %l %{k}|%{W} %-Lw%{R}%n %t%{W}%+Lw" 12 | 13 | -------------------------------------------------------------------------------- /.tmux.conf: -------------------------------------------------------------------------------- 1 | # Make it use C-a, similar to screen... (because I learn with screen and I never switched to C-b) 2 | unbind C-b 3 | unbind l 4 | 5 | set -g prefix C-a 6 | 7 | bind-key a send-prefix 8 | bind-key C-a last-window 9 | bind-key Space next-window 10 | bind-key BSpace previous-window 11 | bind-key '"' choose-window 12 | bind-key c new-window -c '#{pane_current_path}' 13 | bind-key | split-window -h -c '#{pane_current_path}' 14 | bind-key - split-window -v -c '#{pane_current_path}' 15 | bind-key r source-file ~/.tmux.conf 16 | bind-key p command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer' 17 | 18 | 19 | # Global Conf 20 | set -g default-terminal "screen-256color" 21 | set -g history-limit 10000 22 | 23 | # Theme 24 | set -g status-bg black 25 | set -g status-fg white 26 | set -g status-left '#[fg=blue]#S #[default]' 27 | set -g status-right '' 28 | 29 | # Some custom color 30 | set -g window-status-current-style bg=red 31 | set -g window-status-activity-style fg=blue,bg=white 32 | 33 | # Set window notifications 34 | setw -g monitor-activity on 35 | set -g visual-activity off 36 | 37 | # Use mouse to select pane 38 | set -g mouse on 39 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | " General 2 | filetype on 3 | filetype plugin indent on 4 | set backspace=indent,eol,start " make backspace a bit more flexible, http://vim.wikia.com/wiki/Backspace_and_delete_problems 5 | set iskeyword+=_,@,%,# " none of these are word dividers ??? 6 | set nobackup 7 | set nowritebackup " like set nobackup. 8 | set nocompatible " Explicitly get out of vi-compatible mode 9 | set noerrorbells " Do not make any noise! 10 | set vb " I said, NO noise 11 | set wildignore=.svn,CVS,.git,.hg,*.o,*.a,*.class,*.mo,*.la,*.so,*.obj,*.swp,*.jpg,*.png,*.xpm,*.gif,*.pyc,*.pyo,*/cache/**,*/logs/** " Ignore certain files 12 | syntax on 13 | 14 | " UI 15 | set background=dark 16 | set cursorline " Highlight the current line 17 | set hlsearch " Highlight matches. 18 | set incsearch " Highlight matches as you type. 19 | set langmenu=en_US.UTF-8 20 | set list " Show special chars 21 | set number " Show line numbers in gutter 22 | set ruler " Always show current position along the bottom 23 | set scrolloff=8 " Keep x line for scope while scrolling 24 | set showcmd " Show (partial) command in status line. 25 | set showmatch " Show matching bracket 26 | set sidescrolloff=8 " same same 27 | 28 | " Editing 29 | set encoding=UTF-8 " Display UTF-8 30 | set expandtab " We do not want tabs, do we? 31 | set ff=unix " Unix EOL 32 | set fileencoding=UTF-8 " Speak UTF-8 33 | set ignorecase " case sensitivity is dumb 34 | set listchars=trail:¤,tab:>- " only show ther chars 35 | set nowrap " No, I don't want wordwrap 36 | set shiftround " when at 3 spaces, and I hit > ... go to 4, not 5 37 | set shiftwidth=4 38 | set smartcase " but not where there are different cases 39 | set tabstop=4 40 | 41 | " Extra 42 | " return at last position 43 | au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Dotfiles 2 | ======== 3 | 4 | Just my dotfiles 5 | 6 | credit 7 | ------ 8 | 9 | * https://github.com/marcw/vim-config 10 | * https://github.com/willdurand/dotfiles 11 | * https://github.com/smaftoul/dotfiles 12 | * https://github.com/brantb/dotfiles 13 | * https://github.com/everzet/dotfiles 14 | * http://www.bordel-de-nerd.net/2010/08/configurer-son-terminal-bash/ [Fr] 15 | * https://github.com/holman/dotfiles 16 | -------------------------------------------------------------------------------- /bin/$: -------------------------------------------------------------------------------- 1 | #/usr/bin/env bash 2 | 3 | "$@" 4 | -------------------------------------------------------------------------------- /bin/demo-bash: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | bash --rcfile <(cat </dev/null 4 | if [ $? -eq 0 ]; then 5 | base=main 6 | else 7 | base=master 8 | fi 9 | 10 | doSlug() { 11 | if [[ `which slug` ]]; then 12 | echo "$@" | slug 13 | else 14 | echo "$@" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' 15 | fi 16 | } 17 | 18 | branch=$(doSlug "$@") 19 | git checkout origin/$base -b $branch 20 | -------------------------------------------------------------------------------- /bin/json_pp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | setMaxItems(-1); 23 | 24 | if ($_SERVER['HTML'] ?? false) { 25 | $dumper = new HtmlDumper(); 26 | } else { 27 | $dumper = new CliDumper(); 28 | } 29 | 30 | $dumper->setColors(true); 31 | $dumper->dump($cloner->cloneVar($json)); 32 | -------------------------------------------------------------------------------- /bin/remove-csi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | while (<>) { 3 | s/ \e[ #%()*+\-.\/]. | 4 | (?:\e\[|\x9b) [ -?]* [@-~] | # CSI ... Cmd 5 | (?:\e\]|\x9d) .*? (?:\e\\|[\a\x9c]) | # OSC ... (ST|BEL) 6 | (?:\e[P^_]|[\x90\x9e\x9f]) .*? (?:\e\\|\x9c) | # (DCS|PM|APC) ... ST 7 | \e.|[\x80-\x9f] //xg; 8 | print; 9 | } 10 | -------------------------------------------------------------------------------- /bin/slug: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | withEmoji($_SERVER['LOCALE'] ?? 'text') 28 | ->slug(stream_get_contents(STDIN)) 29 | ; 30 | -------------------------------------------------------------------------------- /bin/tmux-start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # http://stackoverflow.com/questions/3432536/create-session-if-none-exists/7231728#7231728 4 | # http://stackoverflow.com/questions/5447278/bash-scripts-with-tmux-to-launch-a-4-paned-window/7720881#7720881 5 | 6 | SESSIONS="rio labs orpi" 7 | 8 | function session-rio { 9 | tmux new-session -d -s $1 -n root -c $HOME/dev/github.com/jolicode/redirection.io 10 | tmux new-window -t $1 -n DB -c $HOME/dev/github.com/jolicode/redirection.io 11 | tmux split-window -v -c $HOME/dev/github.com/jolicode/redirection.io 12 | tmux new-window -t $1 -n backend -c $HOME/dev/github.com/jolicode/redirection.io/server/backend 13 | tmux new-window -t $1 -n shell -c $HOME/dev/github.com/jolicode/redirection.io 14 | tmux new-window -t $1 -n manager -c $HOME/dev/github.com/jolicode/redirection.io/server/manager 15 | tmux new-window -t $1 -n agent -c $HOME/dev/github.com/jolicode/redirection.io/agent 16 | tmux split-window -v -c $HOME/dev/github.com/jolicode/redirection.io 17 | tmux new-window -t $1 -n test -c $HOME/dev/github.com/jolicode/redirection.io/ 18 | tmux new-window -t $1 -n infra -c $HOME/dev/github.com/jolicode/redirection.io/infrastructure 19 | } 20 | 21 | function session-labs { 22 | tmux new-session -d -s $1 -n castor -c $HOME/dev/github.com/jolicode/castor 23 | tmux new-window -t $1 -n DS -c $HOME/dev/github.com/jolicode/docker-starter 24 | tmux new-window -t $1 -n monologue -c $HOME/dev/github.com/jolicode/monologue 25 | tmux new-window -t $1 -n qotd -c $HOME/dev/github.com/jolicode/qotd 26 | tmux new-window -t $1 -n SF -c $HOME/dev/github.com/lyrixx/symfony 27 | tmux new-window -t $1 -n SF/app -c $HOME/dev/labs/symfony/symfony-6.4/ 28 | } 29 | 30 | function session-orpi { 31 | tmux new-session -d -s $1 -n root -c $HOME/dev/github.com/jolicode/orpi 32 | tmux new-window -t $1 -n shell -c $HOME/dev/github.com/jolicode/orpi 33 | } 34 | 35 | function session-faume { 36 | tmux new-session -d -s $1 -n root -c $HOME/dev/github.com/Faume-co/modules-shopify 37 | tmux new-window -t $1 -n DB -c $HOME/dev/github.com/Faume-co/modules-shopify 38 | tmux new-window -t $1 -n docker -c $HOME/dev/github.com/Faume-co/docker-stack 39 | } 40 | 41 | function session-shut { 42 | tmux new-session -d -s $1 -n root -c $HOME/dev/github.com/lyrixx/shut 43 | tmux new-window -t $1 -n docker -c $HOME/dev/github.com/lyrixx/shut 44 | tmux new-window -t $1 -n DB -c $HOME/dev/github.com/lyrixx/shut 45 | } 46 | 47 | function session-cer { 48 | tmux new-session -d -s $1 -n root -c $HOME/dev/cerfrance/heisenberg-master 49 | tmux new-window -t $1 -n docker -c $HOME/dev/cerfrance/heisenberg-master 50 | tmux new-window -t $1 -n DB -c $HOME/dev/cerfrance/heisenberg-master 51 | } 52 | 53 | # Global 54 | 55 | for session in $SESSIONS; do 56 | echo -n "$session ... " 57 | tmux has-session -t $session 2>/dev/null 58 | if [[ $? == 0 ]]; then 59 | echo "already exist." 60 | continue 61 | fi 62 | 63 | session-$session $session 64 | echo "created." 65 | done 66 | 67 | -------------------------------------------------------------------------------- /dnsmasq/configure-lxd: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | IFS=$'\t\n' 6 | 7 | lxd_bridge="lxdbr0" 8 | lxd_ipv4_addr="$( 9 | lxc network get "${lxd_bridge}" ipv4.address | 10 | cut \ 11 | --delimiter='/' \ 12 | --fields=1 13 | )" 14 | 15 | echo "# Tell any system-wide dnsmasq instance to make sure to bind to interfaces 16 | # instead of listening on 0.0.0.0 17 | # WARNING: changes to this file will get lost if lxd is removed. 18 | server=/lxd/${lxd_ipv4_addr} 19 | bind-interfaces 20 | except-interface=${lxd_bridge} 21 | " > /etc/dnsmasq.d/lxd 22 | 23 | systemctl restart dnsmasq.service 24 | -------------------------------------------------------------------------------- /dnsmasq/localhost: -------------------------------------------------------------------------------- 1 | address=/localhost/127.0.0.1 2 | -------------------------------------------------------------------------------- /dnsmasq/test: -------------------------------------------------------------------------------- 1 | address=/test/127.0.0.1 2 | -------------------------------------------------------------------------------- /gh-extensions/README.md: -------------------------------------------------------------------------------- 1 | # GH Extension 2 | 3 | Go in each folder and run `gh extension install .` 4 | 5 | That's it! 6 | -------------------------------------------------------------------------------- /gh-extensions/gh-branches-checks/gh-branches-checks: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | NoColor="\e[0m" 4 | Yellow="\e[00;33m" 5 | 6 | branches=`git branch --format='%(refname:short)'` 7 | 8 | for branch in $branches 9 | do 10 | echo -e "Branch $Yellow\"$branch\"$NoColor Checks:" 11 | gh pr view $branch --json url -q .url 12 | gh pr checks $branch 13 | 14 | echo 15 | done 16 | -------------------------------------------------------------------------------- /gh-extensions/gh-pr-update-description/gh-pr-update-description: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | keepBody=true 6 | if [ "$1" == "--wipe" ] ; then 7 | keepBody=false 8 | fi 9 | 10 | details=`gh pr view --json baseRefName,body` 11 | 12 | baseBranch=`echo $details | jq -r '.baseRefName'` 13 | activity=`git log origin/$baseBranch... --format="* %s" | tac` 14 | activity=""$'\n'$activity$'\n'"" 15 | 16 | if [ "$keepBody" = true ] ; then 17 | body=`echo $details | jq -r '.body'` 18 | body=`sed ':a;N;$!ba;s///g' <<< $body` 19 | body="$body"$'\n'"$activity" 20 | else 21 | body="$activity" 22 | fi 23 | 24 | gh pr edit -b "$body" 25 | -------------------------------------------------------------------------------- /git-template/hooks/post-checkout: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PREV_COMMIT=$1 4 | POST_COMMIT=$2 5 | 6 | if [[ '0000000000000000000000000000000000000000' == $PREV_COMMIT ]] ; then exit 0; fi 7 | 8 | NOCOLOR='\e[0m' 9 | REDCOLOR='\e[37;41m' 10 | 11 | if [[ -f composer.lock ]]; then 12 | DIFF=`git diff --shortstat $PREV_COMMIT..$POST_COMMIT composer.lock` 13 | if [[ $DIFF != "" ]]; then 14 | echo -e "$REDCOLOR composer.lock has changed. You must run composer install$NOCOLOR" 15 | fi 16 | fi 17 | 18 | if [[ -f package.json ]]; then 19 | DIFF=`git diff --shortstat $PREV_COMMIT..$POST_COMMIT package.json` 20 | if [[ $DIFF != "" ]]; then 21 | echo -e "$REDCOLOR package.json has changed. You must run npm install$NOCOLOR" 22 | fi 23 | fi 24 | 25 | if [[ -f yarn.lock ]]; then 26 | DIFF=`git diff --shortstat $PREV_COMMIT..$POST_COMMIT yarn.lock` 27 | if [[ $DIFF != "" ]]; then 28 | echo -e "$REDCOLOR yarn.lock has changed. You must run yarn$NOCOLOR" 29 | fi 30 | fi 31 | -------------------------------------------------------------------------------- /git-template/info/exclude: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyrixx/dotfiles/ad6ec923ca3d18e9745569ed3e29bb5c6a6428f7/git-template/info/exclude -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | NOCOLOR='\e[0m' 4 | REDCOLOR='\e[37;41m' 5 | 6 | if [[ $EUID -ne 0 ]]; then 7 | echo -e "$REDCOLOR Think to run this bash script as root$NOCOLOR" 8 | fi 9 | 10 | DOTFILES=`pwd` 11 | 12 | touch $DOTFILES/.private-gitconfig 13 | 14 | echo 'Create $HOME symlink' 15 | 16 | ln -sf $DOTFILES/.bash_aliases ~/.bash_aliases 17 | ln -sf $DOTFILES/.bash_logout ~/.bash_logout 18 | ln -sf $DOTFILES/.bashrc ~/.bashrc 19 | ln -sf $DOTFILES/.gitconfig ~/.gitconfig 20 | ln -sf $DOTFILES/.gitglobalexclude ~/.gitglobalexclude 21 | ln -sf $DOTFILES/.private-gitconfig ~/.private-gitconfig 22 | ln -sf $DOTFILES/.profile ~/.profile 23 | ln -sf $DOTFILES/.psqlrc ~/.psqlrc 24 | ln -sf $DOTFILES/.ripgreprc ~/.ripgreprc 25 | ln -sf $DOTFILES/.screenrc ~/.screenrc 26 | ln -sf $DOTFILES/.tmux.conf ~/.tmux.conf 27 | ln -sf $DOTFILES/.vimrc ~/.vimrc 28 | ln -sf $DOTFILES/git-template ~/.git-template 29 | 30 | echo 'Install git submodule' 31 | if [[ `which git` ]] ; then 32 | git submodule update --init 33 | ln -sf $DOTFILES/vendor/dircolors-solarized/dircolors.ansi-dark ~/.dir_colors 34 | fi 35 | 36 | echo 'Create custom bin symlink' 37 | mkdir -p $HOME/.local/bin 38 | 39 | ln -sf $DOTFILES/bin/\$ /$HOME/.local/bin/\$ 40 | ln -sf $DOTFILES/bin/demo-bash /$HOME/.local/bin/demo-bash 41 | ln -sf $DOTFILES/bin/git-new /$HOME/.local/bin/git-new 42 | ln -sf $DOTFILES/bin/json_pp /$HOME/.local/bin/json_pp 43 | ln -sf $DOTFILES/bin/remove-csi /$HOME/.local/bin/remove-csi 44 | ln -sf $DOTFILES/bin/tmux-start /$HOME/.local/bin/tmux-start 45 | ln -sf $DOTFILES/bin/slug /$HOME/.local/bin/slug 46 | 47 | if [[ `which php` ]] ; then 48 | if [[ ! -f $HOME/.local/bin/composer ]]; then 49 | echo 'Install composer' 50 | curl -sS https://getcomposer.org/installer | php 51 | mv composer.phar $HOME/.local/bin/composer 52 | fi 53 | fi 54 | -------------------------------------------------------------------------------- /nginx/sites.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 8888; 3 | 4 | server_name ~^(.*\.)*([^\.]+)\.localhost$ ; 5 | 6 | set $site 'noop'; 7 | if ($host ~ "^(.*)\.localhost$") { 8 | set $site $1; 9 | } 10 | 11 | set $root /home/gregoire/dev/tools/sites/$site; 12 | 13 | if (-d $root/web) { 14 | set $root $root/web; 15 | } 16 | 17 | if (-d $root/public) { 18 | set $root $root/public; 19 | } 20 | 21 | root $root; 22 | 23 | autoindex on; 24 | 25 | index app.php index.php index.html; 26 | 27 | access_log /var/log/nginx/sites.access.log; 28 | error_log /var/log/nginx/sites.error.log; 29 | 30 | try_files $uri $uri/ @rewrite; 31 | 32 | location @rewrite { 33 | if (-f $root/app.php) { 34 | rewrite ^/(.*)$ /app.php/$1; 35 | } 36 | if (-f $root/index.php) { 37 | rewrite ^/(.*)$ /index.php/$1; 38 | } 39 | } 40 | 41 | location ~ \.php { 42 | fastcgi_index index.php; 43 | fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; 44 | 45 | include fastcgi_params; 46 | # https://httpoxy.org/ mitigation 47 | fastcgi_param HTTP_PROXY ""; 48 | fastcgi_param SERVER_NAME $host; 49 | fastcgi_split_path_info ^(.+\.php)(/.+)$; 50 | fastcgi_param PATH_INFO $fastcgi_path_info; 51 | fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; 52 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 53 | 54 | fastcgi_read_timeout 600; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /php/fpm.www.conf: -------------------------------------------------------------------------------- 1 | [www] 2 | user = gregoire 3 | group = gregoire 4 | listen = /var/run/php/php-fpm.sock 5 | listen.owner = www-data 6 | listen.group = www-data 7 | pm = dynamic 8 | pm.max_children = 8 9 | pm.start_servers = 2 10 | pm.min_spare_servers = 1 11 | pm.max_spare_servers = 3 12 | php_admin_value[error_log] = /var/log/php/fpm-php.pool-www.log 13 | -------------------------------------------------------------------------------- /php/my.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | short_open_tag = Off 3 | memory_limit = 2048M 4 | error_reporting = E_ALL 5 | display_errors = On 6 | display_startup_errors = On 7 | log_errors = On 8 | html_errors = On 9 | log_errors_max_len = 0 10 | auto_prepend_file = /home/gregoire/dev/github.com/symfony/var-dumper/vendor/autoload.php 11 | max_execution_time = 0 12 | always_populate_raw_post_data = -1 13 | upload_max_filesize = 100M 14 | post_max_size = 100M 15 | output_buffering = Off 16 | ; extension=meminfo.so 17 | [blackfire] 18 | blackfire.log_file = /var/log/blackfire/probe.log 19 | blackfire.log_level = 1 20 | [Date] 21 | date.timezone = Europe/Paris 22 | [Phar] 23 | phar.readonly = Off 24 | [Xdebug] 25 | xdebug.file_link_format=vscode://file/%f:%l 26 | ; for step debugging 27 | ; zend_extension=xdebug.so 28 | ; xdebug.mode=develop,debug 29 | ; For docker 30 | ; xdebug.client_host=host.docker.internal 31 | 32 | [opcache] 33 | opcache.max_accelerated_files=15000 34 | opcache.enable_cli=1 35 | ; opcache.file_cache="/tmp/php-opcache" 36 | [apc] 37 | apc.enabled=1 38 | apc.enable_cli=1 39 | [ffi] 40 | ffi.enable=1 41 | -------------------------------------------------------------------------------- /vscode/keybindings.json: -------------------------------------------------------------------------------- 1 | // Place your key bindings in this file to override the defaultsauto[] 2 | [ 3 | { 4 | "key": "ctrl+shift+s", 5 | "command": "workbench.action.files.saveAll" 6 | }, 7 | { 8 | "key": "ctrl+e", 9 | "command": "editor.action.deleteLines", 10 | "when": "textInputFocus && !editorReadonly" 11 | }, 12 | { 13 | "key": "ctrl+shift+k", 14 | "command": "-editor.action.deleteLines", 15 | "when": "textInputFocus && !editorReadonly" 16 | }, 17 | { 18 | "key": "shift+alt+up", 19 | "command": "editor.action.moveLinesUpAction", 20 | "when": "editorTextFocus && !editorReadonly" 21 | }, 22 | { 23 | "key": "alt+up", 24 | "command": "-editor.action.moveLinesUpAction", 25 | "when": "editorTextFocus && !editorReadonly" 26 | }, 27 | { 28 | "key": "ctrl+shift+up", 29 | "command": "editor.action.copyLinesUpAction", 30 | "when": "editorTextFocus && !editorReadonly" 31 | }, 32 | { 33 | "key": "ctrl+shift+alt+up", 34 | "command": "-editor.action.copyLinesUpAction", 35 | "when": "editorTextFocus && !editorReadonly" 36 | }, 37 | { 38 | "key": "shift+alt+down", 39 | "command": "editor.action.moveLinesDownAction", 40 | "when": "editorTextFocus && !editorReadonly" 41 | }, 42 | { 43 | "key": "alt+down", 44 | "command": "-editor.action.moveLinesDownAction", 45 | "when": "editorTextFocus && !editorReadonly" 46 | }, 47 | { 48 | "key": "ctrl+shift+down", 49 | "command": "editor.action.copyLinesDownAction", 50 | "when": "editorTextFocus && !editorReadonly" 51 | }, 52 | { 53 | "key": "ctrl+shift+alt+down", 54 | "command": "-editor.action.copyLinesDownAction", 55 | "when": "editorTextFocus && !editorReadonly" 56 | }, 57 | { 58 | "key": "shift+alt+right", 59 | "command": "editor.action.indentLines" 60 | }, 61 | { 62 | "key": "shift+alt+left", 63 | "command": "editor.action.outdentLines" 64 | }, 65 | { 66 | "key": "ctrl+b", 67 | "command": "editor.action.revealDefinition", 68 | "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor" 69 | }, 70 | { 71 | "key": "f12", 72 | "command": "-editor.action.revealDefinition", 73 | "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor" 74 | }, 75 | { 76 | "key": "f6", 77 | "command": "namespaceResolver.expand", 78 | "when": "editorTextFocus" 79 | }, 80 | { 81 | "key": "ctrl+alt+e", 82 | "command": "-namespaceResolver.expand", 83 | "when": "editorTextFocus" 84 | }, 85 | { 86 | "key": "f4", 87 | "command": "namespaceResolver.generateNamespace", 88 | "when": "editorTextFocus" 89 | }, 90 | { 91 | "key": "ctrl+alt+g", 92 | "command": "-namespaceResolver.generateNamespace", 93 | "when": "editorTextFocus" 94 | }, 95 | { 96 | "key": "f5", 97 | "command": "namespaceResolver.import", 98 | "when": "editorTextFocus" 99 | }, 100 | { 101 | "key": "ctrl+alt+i", 102 | "command": "-namespaceResolver.import", 103 | "when": "editorTextFocus" 104 | }, 105 | { 106 | "key": "f5", 107 | "command": "-workbench.action.debug.continue", 108 | "when": "inDebugMode" 109 | }, 110 | { 111 | "key": "ctrl+shift+f5", 112 | "command": "-workbench.action.debug.restart", 113 | "when": "inDebugMode" 114 | }, 115 | { 116 | "key": "f5", 117 | "command": "-workbench.action.debug.start", 118 | "when": "!inDebugMode" 119 | }, 120 | { 121 | "key": "ctrl+f5", 122 | "command": "-workbench.action.debug.run" 123 | }, 124 | { 125 | "key": "shift+f5", 126 | "command": "-workbench.action.debug.stop", 127 | "when": "inDebugMode" 128 | }, 129 | { 130 | "key": "ctrl+1", 131 | "command": "workbench.view.explorer" 132 | }, 133 | { 134 | "key": "ctrl+shift+e", 135 | "command": "-workbench.view.explorer" 136 | }, 137 | { 138 | "key": "ctrl+shift+1", 139 | "command": "workbench.files.action.showActiveFileInExplorer" 140 | }, 141 | { 142 | "key": "shift+enter", 143 | "command": "editor.action.insertLineAfter", 144 | "when": "editorTextFocus && !editorReadonly" 145 | }, 146 | { 147 | "key": "ctrl+enter", 148 | "command": "-editor.action.insertLineAfter", 149 | "when": "editorTextFocus && !editorReadonly" 150 | }, 151 | { 152 | "key": "ctrl+shift+c", 153 | "command": "editor.action.commentLine", 154 | "when": "editorTextFocus && !editorReadonly" 155 | }, 156 | { 157 | "key": "ctrl+shift+[Period]", 158 | "command": "-editor.action.commentLine", 159 | "when": "editorTextFocus && !editorReadonly" 160 | }, 161 | { 162 | "key": "ctrl+r", 163 | "command": "workbench.action.gotoMethod" 164 | }, 165 | { 166 | "key": "ctrl+shift+l", 167 | "command": "editor.action.insertCursorAtEndOfEachLineSelected", 168 | "when": "editorTextFocus" 169 | }, 170 | { 171 | "key": "shift+alt+i", 172 | "command": "-editor.action.insertCursorAtEndOfEachLineSelected", 173 | "when": "editorTextFocus" 174 | }, 175 | { 176 | "key": "ctrl+b", 177 | "command": "-workbench.action.toggleSidebarVisibility" 178 | }, 179 | { 180 | "key": "ctrl+m", 181 | "command": "-editor.action.toggleTabFocusMode" 182 | }, 183 | { 184 | "key": "alt+left", 185 | "command": "workbench.action.navigateBack" 186 | }, 187 | { 188 | "key": "alt+right", 189 | "command": "workbench.action.navigateForward" 190 | }, 191 | { 192 | "key": "ctrl+8", 193 | "command": "-workbench.action.navigateForward" 194 | }, 195 | { 196 | "key": "f9", 197 | "command": "editor.action.sortLinesAscending" 198 | }, 199 | { 200 | "key": "ctrl+left", 201 | "command": "cursorWordPartLeft", 202 | "when": "textInputFocus" 203 | }, 204 | { 205 | "key": "ctrl+shift+left", 206 | "command": "cursorWordPartLeftSelect", 207 | "when": "textInputFocus" 208 | }, 209 | { 210 | "key": "ctrl+right", 211 | "command": "cursorWordPartRight", 212 | "when": "textInputFocus" 213 | }, 214 | { 215 | "key": "ctrl+shift+right", 216 | "command": "cursorWordPartRightSelect", 217 | "when": "textInputFocus" 218 | }, 219 | { 220 | "key": "ctrl+m", 221 | "command": "editor.action.smartSelect.expand", 222 | "when": "editorTextFocus" 223 | }, 224 | { 225 | "key": "shift+alt+right", 226 | "command": "-editor.action.smartSelect.expand", 227 | "when": "editorTextFocus" 228 | }, 229 | { 230 | "key": "shift+alt+right", 231 | "command": "-editor.action.smartSelect.expand", 232 | "when": "editorTextFocus" 233 | } 234 | ] 235 | -------------------------------------------------------------------------------- /vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.renderControlCharacters": true, 3 | "editor.renderWhitespace": "all", 4 | "editor.multiCursorModifier": "alt", 5 | "editor.fontFamily": "consolas,'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'", 6 | "editor.wordWrapColumn": 120, 7 | "files.exclude": { 8 | "**/*.pyc": true, 9 | "**/cov/": true, 10 | "**/docker*snapshot/": true, 11 | "**/greg/": true, 12 | "**/node_modules/": true, 13 | "**/resources/data/": true, 14 | "**/tools/phpstan/vendor": true, 15 | "**/tools/php-cs-fixer/vendor": true, 16 | "**/var/cache/**/doctrine/": true, 17 | "**/vendor/bin/.phpunit/phpunit/vendor/": false, 18 | // "**/vendor/**/vendor": true, 19 | }, 20 | "editor.cursorBlinking": "phase", 21 | "search.useIgnoreFiles": false, 22 | "workbench.colorTheme": "Monokai", 23 | "namespaceResolver.leadingSeparator": false, 24 | "namespaceResolver.sortAlphabetically": true, 25 | "namespaceResolver.sortNatural": true, 26 | "files.trimTrailingWhitespace": true, 27 | "cSpell.userWords": [ 28 | "Acker", 29 | "actix", 30 | "AFSY", 31 | "AFUP", 32 | "aggs", 33 | "amqp", 34 | "ansible", 35 | "Apios", 36 | "Apip", 37 | "appart", 38 | "apparté", 39 | "arrète", 40 | "Asynit", 41 | "aujourd'hui", 42 | "authentifiable", 43 | "autoconfigure", 44 | "autoload", 45 | "autoloader", 46 | "automapper", 47 | "autowirable", 48 | "autowire", 49 | "Autowired", 50 | "autowiring", 51 | "behat", 52 | "bindgen", 53 | "blablacar", 54 | "blackfire", 55 | "Blackfire", 56 | "buildkit", 57 | "Cacheable", 58 | "camelize", 59 | "Chamrousse", 60 | "classmap", 61 | "clevercloud", 62 | "clickhouse", 63 | "cobranding", 64 | "codemirror", 65 | "collapsable", 66 | "commited", 67 | "compatibily", 68 | "covfefe", 69 | "crawlable", 70 | "Csrf", 71 | "darwin", 72 | "dasherize", 73 | "datadog", 74 | "dateinterval", 75 | "Dayuse", 76 | "dbal", 77 | "dbname", 78 | "debug", 79 | "Debugf", 80 | "deeplink", 81 | "denormalizable", 82 | "denormalization", 83 | "denormalize", 84 | "denormalized", 85 | "denormalizer", 86 | "deps", 87 | "Derussé", 88 | "deserialization", 89 | "discoverability", 90 | "Discoverability", 91 | "Elastica", 92 | "elif", 93 | "elts", 94 | "emscripten", 95 | "Encodable", 96 | "endfor", 97 | "endgroup", 98 | "Entrypoint", 99 | "EOFTXT", 100 | "EOJSON", 101 | "EOMARKDOWN", 102 | "EOSQL", 103 | "EOTXT", 104 | "EOXML", 105 | "errored", 106 | "etag", 107 | "EXTS", 108 | "fanout", 109 | "fastly", 110 | "Faume", 111 | "Flattenizer", 112 | "FQCN", 113 | "Froms", 114 | "fulltext", 115 | "Gedmo", 116 | "gelf", 117 | "geohash", 118 | "geojson", 119 | "gifs", 120 | "giphy", 121 | "github", 122 | "gitlab", 123 | "GOOGLEBOT", 124 | "goroutines", 125 | "grafana", 126 | "greg", 127 | "gregoire", 128 | "Gregoire", 129 | "gspt", 130 | "hasher", 131 | "hashers", 132 | "healthcheck", 133 | "hidearrow", 134 | "hidearrowmobile", 135 | "hostnames", 136 | "Hotwire", 137 | "httplug", 138 | "idempotency", 139 | "Idempotency", 140 | "INCRBY", 141 | "influxdb", 142 | "Infof", 143 | "inlink", 144 | "inlinks", 145 | "instanceof", 146 | "inversed", 147 | "invitable", 148 | "joli", 149 | "jolicampus", 150 | "jolicode", 151 | "jolitypo", 152 | "jsonld", 153 | "Keycloak", 154 | "kibana", 155 | "l'impersonification", 156 | "labelledby", 157 | "libsodium", 158 | "lidbfs", 159 | "linux", 160 | "loadbalancer", 161 | "Loggable", 162 | "Loïck", 163 | "lucene", 164 | "lyrixx", 165 | "mailcatcher", 166 | "Mailgun", 167 | "makasim", 168 | "melissandre", 169 | "mergé", 170 | "Mergé", 171 | "metadatas", 172 | "metatag", 173 | "Metatags", 174 | "Microtip", 175 | "MQTT", 176 | "multisearch", 177 | "mutex", 178 | "Nofollow", 179 | "nopadding", 180 | "NOPARAM", 181 | "nosnippet", 182 | "nyholm", 183 | "offithings", 184 | "onelogin", 185 | "opcache", 186 | "openapi", 187 | "opengraph", 188 | "orpi", 189 | "ouibus", 190 | "outlink", 191 | "outlinks", 192 | "pecl", 193 | "phar", 194 | "PHAR", 195 | "phars", 196 | "phpstan", 197 | "phpunit", 198 | "pipenv", 199 | "plurimedia", 200 | "postgres", 201 | "postgresql", 202 | "Potencier", 203 | "Preload", 204 | "preprod", 205 | "preproduction", 206 | "println", 207 | "prometheus", 208 | "prophesize", 209 | "qotd", 210 | "rabbitmq", 211 | "Rebootable", 212 | "recommerce", 213 | "recrawl", 214 | "recrawled", 215 | "recrawler", 216 | "recrawling", 217 | "redirection", 218 | "redirectionio", 219 | "Redirector", 220 | "reindex", 221 | "RELS", 222 | "routable", 223 | "ruleset", 224 | "schedulable", 225 | "scrollable", 226 | "segmentations", 227 | "sendgrid", 228 | "Sensio", 229 | "Serializers", 230 | "Serp", 231 | "shopify", 232 | "SIGINT", 233 | "Signalable", 234 | "SIGTERM", 235 | "snapshoter", 236 | "soyuka", 237 | "spotify", 238 | "Spotify", 239 | "Sqills", 240 | "SSID", 241 | "stastd", 242 | "staticrypt", 243 | "staycation", 244 | "streadway", 245 | "Stringable", 246 | "struppi", 247 | "Styleguide", 248 | "subsubchapter", 249 | "suffisament", 250 | "Supervisord", 251 | "Swarrot", 252 | "sweepbright", 253 | "swiftmailer", 254 | "symfony", 255 | "symlink", 256 | "tbody", 257 | "templating", 258 | "testsuites", 259 | "thead", 260 | "thumbor", 261 | "timeouted", 262 | "timeseries", 263 | "Timestampable", 264 | "Toggleable", 265 | "tokio", 266 | "totp", 267 | "Tracef", 268 | "traefik", 269 | "transliterators", 270 | "uids", 271 | "unacks", 272 | "underscorize", 273 | "unmarshal", 274 | "Unpublish", 275 | "unregister", 276 | "unserialized", 277 | "unsortable", 278 | "unstyled", 279 | "untrusted", 280 | "Upgrader", 281 | "upsert", 282 | "upserts", 283 | "userland", 284 | "uuid", 285 | "VCLs", 286 | "videofutur", 287 | "videostream", 288 | "Videostreams", 289 | "webassembly", 290 | "xdebug", 291 | "xiti", 292 | "Yolo", 293 | "zxcvbn" 294 | ], 295 | "workbench.iconTheme": "vscode-icons", 296 | "vsicons.dontShowNewVersionMessage": true, 297 | "go.formatTool": "goimports", 298 | "go.useLanguageServer": true, 299 | "go.toolsEnvVars": { 300 | "GOFLAGS": "-mod=vendor" 301 | }, 302 | "explorer.confirmDelete": false, 303 | "auto-close-tag.SublimeText3Mode": true, 304 | "auto-close-tag.activationOnLanguage": [ 305 | "*" 306 | ], 307 | "emmet.includeLanguages": { 308 | "twig": "html" 309 | }, 310 | "cSpell.language": "en,fr", 311 | "workbench.startupEditor": "newUntitledFile", 312 | "explorer.confirmDragAndDrop": false, 313 | "editor.minimap.showSlider": "always", 314 | "workbench.editor.enablePreview": false, 315 | "editor.autoIndent": "keep", 316 | "editor.suggestFontSize": 16, 317 | "editor.fontSize": 17, 318 | "debug.console.fontSize": 16, 319 | "terminal.integrated.fontSize": 16, 320 | "window.title": "${dirty}${activeEditorMedium}${separator}${rootName}", 321 | "explorer.autoReveal": false, 322 | "rewrap.wrappingColumn": 80, 323 | "intelephense.stubs": [ 324 | "amqp", 325 | "apache", 326 | "bcmath", 327 | "bz2", 328 | "calendar", 329 | "com_dotnet", 330 | "Core", 331 | "ctype", 332 | "curl", 333 | "date", 334 | "dba", 335 | "dom", 336 | "enchant", 337 | "exif", 338 | "FFI", 339 | "fileinfo", 340 | "filter", 341 | "fpm", 342 | "ftp", 343 | "gd", 344 | "gettext", 345 | "gmp", 346 | "hash", 347 | "iconv", 348 | "imap", 349 | "intl", 350 | "json", 351 | "ldap", 352 | "libxml", 353 | "mbstring", 354 | "meta", 355 | "mysqli", 356 | "oci8", 357 | "odbc", 358 | "openssl", 359 | "pcntl", 360 | "pcre", 361 | "pdo_ibm", 362 | "pdo_mysql", 363 | "pdo_pgsql", 364 | "pdo_sqlite", 365 | "PDO", 366 | "pgsql", 367 | "Phar", 368 | "posix", 369 | "pspell", 370 | "readline", 371 | "redis", 372 | "Reflection", 373 | "session", 374 | "shmop", 375 | "SimpleXML", 376 | "snmp", 377 | "soap", 378 | "sockets", 379 | "sodium", 380 | "SPL", 381 | "sqlite3", 382 | "uuid", 383 | "random", 384 | "standard", 385 | "superglobals", 386 | "sysvmsg", 387 | "sysvsem", 388 | "sysvshm", 389 | "tidy", 390 | "tokenizer", 391 | "xml", 392 | "xmlreader", 393 | "xmlrpc", 394 | "xmlwriter", 395 | "xsl", 396 | "Zend OPcache", 397 | "zip", 398 | "zlib" 399 | ], 400 | "files.autoSave": "off", 401 | "python.languageServer": "Default", 402 | "editor.suggest.showStatusBar": true, 403 | "cSpell.enableFiletypes": [ 404 | "ini" 405 | ], 406 | "workbench.editorAssociations": { 407 | "*.ipynb": "jupyter-notebook" 408 | }, 409 | "go.toolsManagement.autoUpdate": true, 410 | "yaml.customTags": [ 411 | "!php/const", 412 | "!service_closure", 413 | "!tagged_iterator", 414 | "!tagged_locator", 415 | "!service", 416 | ], 417 | "redhat.telemetry.enabled": false, 418 | "security.workspace.trust.untrustedFiles": "open", 419 | "notebook.cellToolbarLocation": { 420 | "default": "right", 421 | "jupyter-notebook": "left" 422 | }, 423 | "editor.suggest.preview": true, 424 | "editor.inlineSuggest.enabled": true, 425 | "github.copilot.enable": { 426 | "*": true, 427 | "plaintext": false, 428 | "markdown": true, 429 | "scminput": false 430 | }, 431 | "diffEditor.renderSideBySide": false, 432 | "window.titleBarStyle": "custom", 433 | "git.mergeEditor": false, 434 | "search.followSymlinks": false, 435 | "extensions.experimental.affinity": { 436 | "ms-toolsai.jupyter": 1, 437 | "ms-toolsai.jupyter-renderers": 1, 438 | "ms-python.python": 1, 439 | "ms-python.vscode-pylance": 1 440 | }, 441 | "[python]": { 442 | "editor.formatOnType": true 443 | }, 444 | "arduino.useArduinoCli": true, 445 | "python.defaultInterpreterPath": "/home/gregoire/.local/share/virtualenvs/redirection.io-N6VtXRbV", 446 | "editor.unicodeHighlight.invisibleCharacters": false, 447 | "editor.unicodeHighlight.ambiguousCharacters": false, 448 | 449 | "git.openRepositoryInParentFolders": "never", 450 | "security.promptForLocalFileProtocolHandling": false, 451 | "cmake.showOptionsMovedNotification": false, 452 | "makefile.configureAfterCommand": false, 453 | "makefile.configureOnEdit": false, 454 | "makefile.configureOnOpen": false, 455 | "files.insertFinalNewline": true, 456 | "markdown-pdf.styles": [ 457 | "/home/gregoire/dev/gitlab.com/carb0n/tech.carbon.green/rapport.css" 458 | ], 459 | "github.copilot.editor.enableAutoCompletions": true, 460 | "settingsSync.ignoredExtensions": [], 461 | "settingsSync.ignoredSettings": [], 462 | "editor.find.seedSearchStringFromSelection": "never" 463 | } 464 | -------------------------------------------------------------------------------- /vscode/snippets/go.json: -------------------------------------------------------------------------------- 1 | { 2 | "Dump value" : { 3 | "prefix": "vvv", 4 | "body": "fmt.Printf(\"%#+v\\n\", $1)" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /vscode/snippets/php.json: -------------------------------------------------------------------------------- 1 | { 2 | "Dump Die": { 3 | "prefix": "dd", 4 | "body": ["dump($1);die();"], 5 | }, 6 | "Print memory usage": { 7 | "prefix": "memory", 8 | "body": [ 9 | "printf(\"%.2fMb\\n\", memory_get_usage() / 1024 / 1024);" 10 | ] 11 | }, 12 | "Dump Backtrace": { 13 | "prefix": "bt", 14 | "body": [ 15 | "dd(new \\Exception());" 16 | ], 17 | }, 18 | "Log to file": { 19 | "prefix": "lf", 20 | "body": [ 21 | "file_put_contents('log', __METHOD__ . ': ' . \\$$1 . \"\\n\", FILE_APPEND);" 22 | ], 23 | }, 24 | "Log to file ++": { 25 | "prefix": "lf++", 26 | "body": [ 27 | "file_put_contents(", 28 | " 'debug',", 29 | " sprintf(", 30 | " \"%s::%s()\\n%s:%s\\n%s\\n\\n\",", 31 | " __CLASS__,", 32 | " __FUNCTION__,", 33 | " __FILE__,", 34 | " __LINE__,", 35 | " $1", 36 | " ),", 37 | " FILE_APPEND", 38 | ");", 39 | ], 40 | }, 41 | "Constructor": { 42 | "prefix": "construct", 43 | "body": [ 44 | "public function __construct(\n $1\n) {\n}\n" 45 | ], 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /vscode/snippets/rust.json: -------------------------------------------------------------------------------- 1 | { 2 | "Dump value" : { 3 | "prefix": "vvv", 4 | "body": "dbg!($1);" 5 | } 6 | } 7 | --------------------------------------------------------------------------------