miércoles, 21 de mayo de 2014

Para que nunca olvides lo que tienes que hacer

Hola mi niña, espero que este código te ayude a no olvidar las cosas que tienes que hacer.
Como todos mis programitas, está hecho para linux:

#!/bin/bash
# todo - Programa para gestionar tus tareas
# Versión 0.1
# Copyright 2014 Arnoldo Bric
# This program is free software; 

# it is licensed under the terms of the 
# GNU General Public License 
# as published by the Free Software Foundation; 
# either version 2 of the License, 
# or (at your option) any later version.

DIR=$HOME/.config/to-do
TAREAS=$DIR/tareas.log
NUEVAS=$DIR/nuevas.log

if [ ! -d $DIR ]; then
    mkdir -p $DIR
fi

actualizar(){
    [ -s $TAREAS ] || mv $NUEVAS $TAREAS
    cat -n $TAREAS > $TAREAS.list
    [ -a $NUEVAS ] || touch $NUEVAS
    cat $NUEVAS > $NUEVAS.list
}

agregar(){
    echo  "$*">> $NUEVAS
}

eliminar(){
    id=$1
    sed -e ${id}d  $TAREAS > $TAREAS.temp && \
    mv $TAREAS.temp $TAREAS
}

continuar(){
    temp=$(head -n $1 $TAREAS | tail -n 1)
    eliminar $1
    agregar $temp
}

mostrar(){
    clear
    Z="- - - - - - - - - - - "
    echo "$Z N U E V A S"
    cat $NUEVAS.list
    echo "$Z P E N D I E N T E S"
    cat $TAREAS.list
    echo
}

sintaxis(){
    echo " Manejador de lista de tareas"
    echo " $0 [m|a tarea|c n|d n|h]"
    echo " m       : Muestra la lista de tareas en la consola"
    echo " a tarea : Agregar tarea  \"...\" a la lista"
    echo " c n     : Mover la tarea \"n\" de PENDIENTES a NUEVAS"
    echo " d n     : Eliminar la tarea número \"n\""
    echo " h       : Mostrar la sintaxis y salir"
exit 0
}

[ $# = 0 ] && sintaxis && exit 0

OP=$1
shift
case $OP in
    h) sintaxis ;;
    a) agregar $*
    actualizar
    mostrar
    ;;
    c) continuar $1
    actualizar
    mostrar
    ;;
    d) eliminar $1
    actualizar
    mostrar
    ;;
    m) actualizar
    mostrar
    ;;
    *) exit 1
esac
actualizar
exit 0


Guarda el script anterior como /usr/local/bin/todo y dale permisos de ejecución para todos:

# chmod +x /usr/local/bin/todo


Y si quieres que conky muestre la lista de cosas pendientes en el escritorio, puedes hacer lo siguiente:
Crear el archivo conky para que lea los archivos ~/.config/to-do/nuevas.log.list y ~/.config/to-do/tareas.log.list

No hay comentarios: