Article dans la série 'Termux sur Android' : Réinstallation et Termux API
Il n’aura échappé à personne que je passe pas mal de temps sur Termux. Je n’ai d’ailleurs aucune idée si ça passionne les foules, vous avez le droit de dire ce que vous en pensez dans les commentaires.
Réinstallation rapide de Termux
Afin de gagner du temps dans mes multiples tests, j’ai décidé de m’organiser et notamment de prévoir une réinstallation rapide de Termux. Je dépose le script termux.sh dans /sdcard/Download/ (en branchant mon téléphone sur le pc avec le câble USB) puis je lance les commandes suivantes.
cp /sdcard/Download/termux.sh ~/ # On copie le script dans le HOME car on n'a pas les droits pour l'exécuter dans /sdcard/Download chmod +x termux.sh && ./termux.sh # On rend le script exécutable puis on le lance
Voici le script termux.sh. Le paquet python2 m’est nécessaire car j’utilise Ansible à partir de mon poste xubuntu pour configurer le téléphone. L’intérêt n’est pas forcément évident, tous les modules Ansible ne sont pas pris en charge (le module apt notamment).
#!/data/data/com.termux/files/usr/bin/bash # termux.sh v0.1 # apt update && apt upgrade # On met à jour la liste des paquets puis on met à jour les paquets apt -y install curl nano openssh python2 # On installe les paquets de base curl https://blog-libre.org/dl/xubuntu_key >> ~/.ssh/authorized_keys # On autorise notre poste xubuntu à se connecter au téléphone chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh # On met les droits qui vont bien sshd # On lance le démon SSH afin de pouvoir se connecter en SSH sur le téléphone
J’utilise Ansible pour configurer Termux que je lance ainsi à partir de mon poste xubuntu.
cd /etc/ansible && ansible-playbook termux.yml -e host=G3 # On configure Termux
Voici le fichier /etc/ansible/hosts
.
[android] G3 ansible_host=192.168.1.12 ansible_port=8022 ansible_shell_executable=/data/data/com.termux/files/usr/bin/bash ansible_python_interpreter=/data/data/com.termux/files/usr/bin/python2
Voici le playbook termux.yml.
--- - name: Termux configuration hosts: "{{ host }}" tasks: - name: Install packages command: apt -y install bash-completion dnsutils man ncdu python ranger rsync termux-api wget - name: Create folders file: path={{ item }} state=directory mode=0755 with_items: - /data/data/com.termux/files/home/scripts - /data/data/com.termux/files/home/logs - /data/data/com.termux/files/usr/var/spool/cron/crontabs - name: Copy .bash_profile copy: src=bash_profile dest=/data/data/com.termux/files/home/.bash_profile mode=0644 - name: Copy inputrc copy: src=inputrc dest=/data/data/com.termux/files/usr/etc/inputrc mode=0644 - name: Copy scripts copy: src={{ item }} dest=/data/data/com.termux/files/home/scripts/ mode=0755 with_fileglob: - /etc/ansible/*.sh
On pourrait faire très différent évidemment et tout inclure dans termux.sh… mais je kiffe Ansible ! Et puis en voyant termux-api juste après, ça donne plein d’idées.
Termux:API
Pour utiliser Termux:API, il faut installer Termux:API sur le téléphone à partir de Google Play ou de F-Droid. Il faut également installer le paquet termux-api sur Termux avec la commande apt install termux-api
. Enfin il faut être root sur le téléphone su
.
Vous trouverez ici la liste des API ainsi que quelques explications.
termux-tts-speak -e com.google.android.tts -l french "bonjour femme pupuce je t'aime" # Utiliser le text-to-speech, il faut préalablement checker les moteurs text-to-speech disponibles avec la commande termux-tts-engines termux-sms-send -n 0123456789 "Test Termux ;)" # Envoyer un SMS termux-toast "Voilà\\nun\\nbisus" # Afficher un message en boite flottante sur votre téléphone, les \\n sont là pour aller à la ligne termux-vibrate -d 2000 # Faire vibrer le téléphone pendant 2000 ms termux-notification -c Pizza -t 12h00 # Afficher une notification avec comme titre 12h00 et comme texte Pizza
Tout cela peut être scripté… ou on peut déléguer à Ansible. Faire vibrer son téléphone quand une tâche longue sur un serveur est terminée, c’est professionnel ou pas ? Ou un text-to-speech : « Chef j’ai terminé le job ». Parce que c’est plus classe qu’un mail ha ha ha !
Bonus : Playbook pour installer Ansible sur le téléphone
Voici le playbook ansible.yml.
--- - name: Installation Ansible hosts: "{{ host }}" environment: CONFIG_SHELL: /data/data/com.termux/files/usr/bin/sh tasks: - name: Install packages command: apt -y install autoconf clang libffi-dev libgmp-dev make openssl-dev python2-dev - name: Install pycrypto pip: name=pycrypto executable=pip2 - name: Install ansible pip: name=ansible version=1.8 executable=pip2
Bon avec tout ça j’ai oublié de vous parler de Mosh, au prochain épisode