Inital commit

This commit is contained in:
Tyler Perkins 2021-10-22 11:00:53 -04:00
commit a18dff8441
6 changed files with 100 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
#ignore all swp files
**/*.swp
#ignore all executables, but still keep the bin folder
bin/*
!bin/.gitkeep

18
Makefile Normal file
View File

@ -0,0 +1,18 @@
###############################################################################
# Tyler Perkins
# 21-10-21
# Makefile to install stackToDo
#
#Install for one user
INSTALL_DIR="$${HOME}/.local/bin"
#Install system wide
#INSTALL_DIR="/usr/bin"
install :
cp t* $(INSTALL_DIR)/
uninstall :
rm $(INSTALL_DIR)/tpeek
rm $(INSTALL_DIR)/tpop
rm $(INSTALL_DIR)/tpush

27
README.md Normal file
View File

@ -0,0 +1,27 @@
stackToDo
=========
A simple stack based to do program, for those that are easily side tracked
(like me). Due to the nature of a stack, it will track how you got side tracked
by pushing to it each time you move to a new task without completing it
Install
-------
```
make install
```
Usage and specifics
-------------------
A stack operates as a FILO container. When getting side tracked when performing
research, programming, etc, it can be hard to get back to the previous task.
Therefore, you can simply `push` a task onto the todo stack. Each task is a
127 character string of what was just happening. Be creative, it can be line
numbers of a file where you were working, the topic you were arguing in a
paper, anything. Once you finish a task, you can `pop` it off the todo stack
and get back to what you were previously doing. If you ever forget what you
were doing, simply `peek` at the top of the stack to see what you're doing
without removing it from the stack. Everything is kept in plaintext, so its
easy to parse with other programs.

13
tpeek Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
#zero arguments
if [ "$#" -ne 0 ]; then
echo "Usage:" $0
echo "Returns what is at the top of the todo stack"
fi
#make correct directories
mkdir -p ~/.config/stackToDo
touch ~/.config/stackToDo/todo
tail -1 ~/.config/stackToDo/todo

15
tpop Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
#must have no arguments
if [ "$#" -ne 0 ]; then
echo "Usage:" $0
echo "Remove the last element of the stack and prints it"
exit 1
fi
#make correct directories
mkdir -p ~/.config/stackToDo
touch ~/.config/stackToDo/todo
tail -1 ~/.config/stackToDo/todo
sed -i '$ d' ~/.config/stackToDo/todo

21
tpush Executable file
View File

@ -0,0 +1,21 @@
#!/bin/bash
#must have an argument
if [ "$#" -eq 0 ]; then
echo "Usage:" $0 "[STRING TO PUT ON STACK]"
echo "Pushes the given string to the top of the todo stack"
exit 1
fi
str="'$*'"
if [ -z "$str" ]; then
echo "Must provide a non empty argument"
exit 1
fi
#make correct directories
mkdir -p ~/.config/stackToDo
touch ~/.config/stackToDo/todo
echo $str >> ~/.config/stackToDo/todo