Antisèches

En vrac !

1. Git

git diff

# Les diffs déjà ajoutés
git diff --staged

git show

# Voir les détails du dernier commit
git show

# Voir les détails d'un commit donné
git show <commit_sha1>

git log

# Les commits d'une branche donnée
git log staging

# Restreindre par le nombre
git log -n 5
git log --max-count=5

# Restreindre par la date
git log --since="1 month"

# Restreindre par l'auteur
git log --author="author email"

# Les voir tous
git --no-pager log

# Ne voir que le SHA1
git log --format="format:%H"

Squash des commits sous IDEA

Squasher des commits avec Git est tellement pénible …

Heureusement ce billet explique le squash des commits sous IDEA !

2. Bash

Modifier les arguments de la ligne de commande

# Tout remplacer
set -- new_arg1 new_arg2 new_arg3 ...

# Ajouter deux arguments en plus au début
set -- added_arg1 added_arg2 "$*"

Obtenir le temps passé par une commande

/usr/bin/time -v make test

ou alors:

\time -v make test

En effet time est aussi une built-in de Bash, qui n’accepte pas l’option -v comprise par /usr/bin/time:

command -V time
time est un mot-clé du shell

On peut aussi utiliser time avec le flag -p qui est moins verbeux.

Débugger un script

Modifier le Shebang du script et remplacer:

#!/usr/bin/env sh

par:

#!/usr/bin/env -S sh -x

Lancer 10 fois les tests

En s’arrêtant dès qu’une des exécutions est en erreur.

#!/bin/bash

set -o errexit

for i in {1..10}; do
    mvn test
done

3. ssh

Pour se connecter en forçant l’utilisation du mot de passe:

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no raspberrypi2.local

4. squid

Pour pouvoir utiliser squid sur toutes les machines du réseau local:

http_access allow localnet

5. Gradle

4.1. Initialiser un projet Java

#!/bin/bash

project=gradle-sample-app

rm -fr $project
mkdir $project
cd $project

gradle init \
	--dsl groovy \
	--package org.grumpyf0x48 \
	--project-name $project \
	--test-framework junit-jupiter \
	--type java-application

# mv app/* .

# supprimer include('app') dans settings.gradle