<commit_before># Dogstudio Shell Scripts

Il s'agit d'une série de scripts permettant d'ajouter des fonctionnalités et des raccourcis à votre terminal. 

> Pour les utilisateurs de Mac, je conseille l'utilisation de "iTerm 2" à la place de "Terminal", l'application native d'Apple.

## Les scripts

### Aliases

Ajoute des "alias" de commandes tels que :

* `l` : efface l'écran et liste le répertoire courant
* `duh` : calcule la taille du répertoire courant en mode "human readable"
* `..` : remonte d'un répertoire (`cd ..`)
* `...` : remonte de deux répertoires (`cd ../..`)

La **fonction** `hostedon` permet de récupérer le nom du serveur qui héberge un site : 

    $ hostedon www.dogstudio.be
    dogstudio05.cblue.be.

### Prompt

Modifier l'invite de votre Shell : 

* Ajoute de la couleur : **blue** pour l'utilisateur courant, **rouge** pour `ROOT` ou `SUDO`
* Affiche l'emplacement : `Local` pour votre machine ou `user@host` pour une connexion distante (SSH)
* Si vous êtes dans **un projet GIT**, affiche la branche en cours
    * En **vert** : pas de modification
    * En **rouge** : modifications pas encore committées
    * En **jaune** : des fichiers sont ajoutés et prêts à être committés.

### SSH Autocomplete

Si vous utilisez souvent SSH avec des serveurs distants, vous utilisez certainement `.ssh/config` pour enregister vos paramètres de connexions.
Ce script permet d'effectuer une autocomplétion sur les noms des connexions.

**Utilisation** : Quand vous tapez le début du nom d'une de vos connexions SSH, utilisez la touhce `TAB` pour compléter ce nom.

* `ssh dog[TAB]` => `ssh dogstudio01`  

### Vagrant

Ajout des "alias" pour les commandes _Vagrant_

* `vup` : pour démarrer la VM
* `vhalt` : pour arrêter la VM
* `vdestroy` : pour supprimer la VM
* `vlist` : lister mes VM en cours d'exécution

Si ce script est utilisé **dans une machine Vagrant**, il ajoute seulement la commande `vhalt` qui permet de stopper la machine (et affiche un message d'erreur pour les autres commandes).

### Docker

Une série de fonctions qui permettent d'interagir avec les conteneurs Docker et les envirionnements `docker-compose`.

    dohelp # pour plus d'infos.

### Applications

Il s'agit de commandes liées aux applications installées (PhpStorm, Sublime Text, ...)

#### SublimeText

**Pour les utilisateurs de SublimeText**, ce script permet de lancer l'application en détectant automatiquement _l'environnement_. 

Exécuter la commande `subl` avec comme 1er paramètre : 

* Un **fichier** : ouvre celui-ci
* Un **répertoire** : si aucun fichier "Projet" n'est détecté, ouvre Sublime et ajoute le répertoire au "workspace"
* Un **projet** (.sublime-project) : ouvre ce projet dans une nouvelle fenêtre Sublime.

Si vous exécutez la commande sans paramètre, détecte la présence d'un fichier projet dans le répertoire :

* Ouvre le projet si un fichier est détecté
* Sinon, ajoute le répertoire au "Workspace" courant

---

## Les configurations

Les fichiers présents dans `configs` sont à placer dans votre répertoire _home_ et permettent une configuration globale :

* `.editorconfig` : pour votre editeur ou ide
* `.gitignore_global` : pour que GIT ignore certains fichiers de manière global.

## Installation des scripts

Il faut télécharger les scripts et les placer dans un répertoire de votre choix (ex: `~/.scripts`)
ou de cloner le dépot : 

    git clone <EMAIL>:devtools/terminaldog.git ~/.scripts

Ensuite vous devez les ajouter à votre fichier `.bashrc`. 

    source ~/.scripts/all.sh

_Le script `all.sh` permet d'inclure tous les scripts d'un coup._

## Mise à jour

Si vous avez cloné le projet avec GIT, il suffit de :

    git pull origin master<commit_msg>:memo: Update README.md<commit_after># Dogstudio Shell Scripts

Il s'agit d'une série de scripts permettant d'ajouter des fonctionnalités et des raccourcis à votre terminal. 

> Pour les utilisateurs de Mac, je conseille l'utilisation de "iTerm 2" à la place de "Terminal", l'application native d'Apple.

## Les scripts

### Aliases

Ajoute des "alias" de commandes tels que :

* `l` : efface l'écran et liste le répertoire courant
* `duh` : calcule la taille du répertoire courant en mode "human readable"
* `..` : remonte d'un répertoire (`cd ..`)
* `...` : remonte de deux répertoires (`cd ../..`)

La **fonction** `hostedon` permet de récupérer le nom du serveur qui héberge un site : 

    $ hostedon www.dogstudio.be
    dogstudio05.cblue.be.

### Prompt

Modifier l'invite de votre Shell : 

* Ajoute de la couleur : **blue** pour l'utilisateur courant, **rouge** pour `ROOT` ou `SUDO`
* Affiche l'emplacement : `Local` pour votre machine ou `user@host` pour une connexion distante (SSH)
* Si vous êtes dans **un projet GIT**, affiche la branche en cours
    * En **vert** : pas de modification
    * En **rouge** : modifications pas encore committées
    * En **jaune** : des fichiers sont ajoutés et prêts à être committés.

### SSH Autocomplete

Si vous utilisez souvent SSH avec des serveurs distants, vous utilisez certainement `.ssh/config` pour enregister vos paramètres de connexions.
Ce script permet d'effectuer une autocomplétion sur les noms des connexions.

**Utilisation** : Quand vous tapez le début du nom d'une de vos connexions SSH, utilisez la touhce `TAB` pour compléter ce nom.

* `ssh dog[TAB]` => `ssh dogstudio01`  

### Vagrant

Ajout des "alias" pour les commandes _Vagrant_

* `vup` : pour démarrer la VM
* `vhalt` : pour arrêter la VM
* `vdestroy` : pour supprimer la VM
* `vlist` : lister mes VM en cours d'exécution

Si ce script est utilisé **dans une machine Vagrant**, il ajoute seulement la commande `vhalt` qui permet de stopper la machine (et affiche un message d'erreur pour les autres commandes).

### Docker

Une série de fonctions qui permettent d'interagir avec les conteneurs Docker et les envirionnements `docker-compose`.

    dohelp # pour plus d'infos.

### Applications

Il s'agit de commandes liées aux applications installées (PhpStorm, Sublime Text, ...)

#### SublimeText

**Pour les utilisateurs de SublimeText**, ce script permet de lancer l'application en détectant automatiquement _l'environnement_. 

Exécuter la commande `subl` avec comme 1er paramètre : 

* Un **fichier** : ouvre celui-ci
* Un **répertoire** : si aucun fichier "Projet" n'est détecté, ouvre Sublime et ajoute le répertoire au "workspace"
* Un **projet** (.sublime-project) : ouvre ce projet dans une nouvelle fenêtre Sublime.

Si vous exécutez la commande sans paramètre, détecte la présence d'un fichier projet dans le répertoire :

* Ouvre le projet si un fichier est détecté
* Sinon, ajoute le répertoire au "Workspace" courant

---

## Les configurations

Les fichiers présents dans `configs` sont à placer dans votre répertoire _home_ et permettent une configuration globale :

* `.editorconfig` : pour votre editeur ou ide
* `.gitignore_global` : pour que GIT ignore certains fichiers de manière global.

## Installation des scripts

Il faut télécharger les scripts et les placer dans un répertoire de votre choix (ex: `~/.scripts`)
ou de cloner le dépot : 

    git clone <EMAIL>:Dogstudio/dot-dogs.git ~/.scripts

Ensuite vous devez les ajouter à votre fichier `.bashrc`. 

    source ~/.scripts/all.sh

_Le script `all.sh` permet d'inclure tous les scripts d'un coup._

## Mise à jour

Si vous avez cloné le projet avec GIT, il suffit de :

    git pull origin master
{'fraction_non_alphanumeric': 0.08987854251012145, 'fraction_numerical': 0.0016194331983805667, 'mean_word_length': 4.193412754029432, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4565532', 'n_tokens_mistral': 2545, 'n_tokens_neox': 2524, 'n_words': 995}