Aller au contenu

script temps de travail Mac


clive-guilde

Messages recommandés

Bonjour à toute la communauté,

 

Je m'adresse spécialement à ceux qui maitrise un peu le shell. Je souhaiterai créer un script voire une application via applescript pour calculer mon temps de travail quotidien en faisant l'hypothèse que ce temps est égale au temps où mon mac est resté allumé.

J'ai donc fait le code suivant sous apple script qui utilise les commandes shell date et uptime. Cela donne :

tell application "System Events"
	do shell script "MOIS=$(date +\"%B\"); date +\"%d-%m-%y\" | cut -d \",\" -f 1 | awk '{print $1,$2,$3,$4;}'>> /Users/toto/Documents/Temps_travail/temps_travail_$MOIS.txt | uptime | cut -d \",\" -f 1 | awk '{print $3,$4;}' >> /Users/toto/Documents/Temps_travail/temps_travail_$MOIS.txt;"
	delay 3
	
end tell

tell application "Finder"
	
	shut down
	
end tell

le fichier temps_travail_MOIS.txt est sous la forme suivante (date du jour puis retour à la ligne puis le temps quotidien) :

29-03-19
2 mins

Premier problème à chaque reboot uptime se réinitialise mais bon je peux faire une addition manuelle dans ce cas car il y a redondance sur la ligne du jour.

A votre avis existe-t-il une meilleure solution ? Pensez-vous qu'il soit possible d'améliorer le script (c'est surement le cas) ? A vos propositions :)

Bon week-end.

 

EDIT : amélioration du code avec la commande date et la création d'un fichier labelisé du mois en cours.

Modifié par clive-guilde
Lien vers le commentaire
Partager sur d’autres sites

Ca fait pas mal d'années que je n'ai plus touché au shell script. Y a certainement plus propre. Personnellement, je préférerais garder tout sur une ligne. Imaginons cette syntaxe : 

29-03-19:0002 mins

Tu pourrais peut-être faire un "tail -1 fichier_mois" (dans mon hypothèse et après une vérification que le fichier n'est pas vide) ou un "tail -2" avec la tienne et commencer par vérifier si la date du jour est égale à la date avant le double point.

Si c'est une autre date, tu ajoutes une ligne au fichier, sinon tu enlèves une ligne, tu sommes les minutes et puis tu rajoutes la ligne (regardes du côté de Sed, je pense que ça peut le faire).

Tu peux aussi compliquer en ajoutant un compteur par mois et années :

  • 29-03-19:0002 mins
  • 03-19:00002 mins
  • 19:000002 mins

Et tu "tail" les 3 dernières lignes et tu incrémentes les 3 compteurs. Note pour faire ce genre de chose, perso, je le ferais en C.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...