2018-03-12 14:00:41 +00:00
|
|
|
# rodo
|
2018-04-18 04:12:32 +00:00
|
|
|
|
2019-04-12 13:23:46 +00:00
|
|
|
A easy-to-use todo list program for people who live on the command line
|
2018-05-20 02:03:00 +00:00
|
|
|
|
2019-03-02 15:49:45 +00:00
|
|
|
# Screenshot
|
|
|
|
|
|
|
|
![](screenshot.png)
|
2018-12-11 14:12:36 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
# Table of Contents
|
|
|
|
|
|
|
|
* [TL;DR](https://github.com/m455/rodo#tldr)
|
|
|
|
* [New things](https://github.com/m455/rodo#new-things)
|
|
|
|
* [Todos](https://github.com/m455/rodo#todos)
|
|
|
|
* [Platforms](https://github.com/m455/rodo#platforms)
|
|
|
|
* [Requirements](https://github.com/m455/rodo#requirements)
|
|
|
|
* [Downloading Racket](https://github.com/m455/rodo#downloading-racket)
|
|
|
|
* [To download Racket using apt](https://github.com/m455/rodo#to-download-racket-using-apt)
|
|
|
|
* [To download Racket using pacman](https://github.com/m455/rodo#to-download-racket-using-pacman)
|
|
|
|
* [Downloading the rodo source code](https://github.com/m455/rodo#downloading-the-rodo-source-code)
|
|
|
|
* [To download the rodo source code](https://github.com/m455/rodo#to-download-the-rodo-source-code)
|
|
|
|
* [Setup](https://github.com/m455/rodo#setup)
|
|
|
|
* [Setting up a $PATH](https://github.com/m455/rodo#setting-up-a-path)
|
|
|
|
* [To set up a $PATH](https://github.com/m455/rodo#to-set-up-a-path)
|
|
|
|
* [Adding rodo to your $PATH](https://github.com/m455/rodo#adding-rodo-to-your-path)
|
|
|
|
* [To add rodo to your $PATH](https://github.com/m455/rodo#to-add-rodo-to-your-path)
|
|
|
|
* [List of commands](https://github.com/m455/rodo#list-of-commands)
|
|
|
|
* [Usage examples](https://github.com/m455/rodo#usage-examples)
|
|
|
|
* [Configuration](https://github.com/m455/rodo#configuring-rodo)
|
|
|
|
|
2019-03-13 03:29:01 +00:00
|
|
|
# TL;DR
|
|
|
|
|
2019-03-23 19:29:06 +00:00
|
|
|
1. Make sure [Racket](https://racket-lang.org/) is installed
|
|
|
|
2. `git clone https://github.com/m455/rodo` into a directory of your choice
|
2019-04-12 13:23:46 +00:00
|
|
|
3. `cd` into the `rodo` directory
|
|
|
|
4. Run one of the following commands:
|
|
|
|
* To use `rodo` using the Racket interpreter run: `racket rodo.rkt`
|
|
|
|
* To use `rodo` as an single-file executable follow the two steps below:
|
|
|
|
1. Run `raco exe rodo.rkt` to compile the `rodo` into a single-file executable
|
|
|
|
2. Run `./rodo`
|
2019-04-30 01:35:44 +00:00
|
|
|
5. (optional) Add the following to your `$PATH` directory to run `rodo` from anywhere.
|
2019-03-23 19:29:06 +00:00
|
|
|
|
|
|
|
```
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
racket ~/path/to/rodo.rkt "$@"
|
|
|
|
```
|
2019-03-13 03:29:01 +00:00
|
|
|
|
2019-04-12 13:24:57 +00:00
|
|
|
Note: If you made an executable, remember to change the `rodo.rkt` part above to `rodo`
|
2019-04-12 13:23:46 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
# New things
|
2019-04-12 13:26:29 +00:00
|
|
|
|
|
|
|
Now the default directory and todo list file have better default permissions:
|
|
|
|
|
2019-04-12 13:27:31 +00:00
|
|
|
* `rodo` is now licensed under AGPL3!
|
2019-04-12 13:26:29 +00:00
|
|
|
* `~/.rodo/` is set to 700 by default
|
|
|
|
* `~/.rodo/todo.txt` is set to 600 by default.
|
|
|
|
|
|
|
|
# Todos
|
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
When I have time, I plan on adding the following features to rodo:
|
|
|
|
|
2019-04-12 13:26:29 +00:00
|
|
|
- Add color option to `config.rkt` file
|
|
|
|
- Encrypt `todo.txt` file
|
|
|
|
|
2018-12-11 13:53:32 +00:00
|
|
|
# Platforms
|
2018-05-20 02:03:00 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
Below is a list of platforms that `rodo` can run on.
|
2019-02-14 20:09:47 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
* Windows Subsystem for Linux
|
|
|
|
* GNU/Linux (Untested)
|
|
|
|
* macOS (Untested)
|
2018-09-08 01:01:00 +00:00
|
|
|
|
2019-01-31 14:46:14 +00:00
|
|
|
# Requirements
|
2018-09-08 01:01:00 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
This section will provide you with the requirements needed to run `rodo`. This
|
|
|
|
section will guide you through downloading Racket and downloading the `rodo`
|
|
|
|
source code.
|
2019-02-14 20:09:47 +00:00
|
|
|
|
2018-09-08 01:30:36 +00:00
|
|
|
* [Racket 6.x](https://racket-lang.org/)
|
2019-04-30 01:35:44 +00:00
|
|
|
* `rodo` source code
|
|
|
|
|
|
|
|
## Downloading Racket
|
2018-09-08 01:01:00 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
Racket can be download using your machine's package manager. Depending on what
|
|
|
|
package manager you use, commands may vary. See the two sections below for a
|
|
|
|
list of examples using the `apt` and `pacman` package managers on the command
|
|
|
|
line.
|
2018-07-31 02:33:48 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
### To download Racket using apt
|
|
|
|
|
|
|
|
1. run `sudo apt install racket`
|
|
|
|
|
|
|
|
Note: You may need to run this command as root
|
|
|
|
|
|
|
|
### To download Racket using pacman
|
|
|
|
|
|
|
|
1. run `pacman -Syu racket`
|
|
|
|
|
|
|
|
Note: You may need to run this command as root
|
|
|
|
|
|
|
|
## Downloading the rodo source code
|
|
|
|
|
|
|
|
The `rodo` source code is available from this repository, and can be downloaded using `git`.
|
|
|
|
|
|
|
|
### To download the rodo source code
|
|
|
|
|
|
|
|
1. run `git clone https://github.com/m455/rodo`
|
|
|
|
|
|
|
|
Tip: If you want to download this into a different directory, you can specify a
|
|
|
|
directory by running the command below:
|
2019-02-25 03:36:32 +00:00
|
|
|
|
2019-03-12 19:06:57 +00:00
|
|
|
```
|
2019-04-30 01:35:44 +00:00
|
|
|
git clone https://github.com/m455/rodo your-directory-name/
|
2019-03-12 19:06:57 +00:00
|
|
|
```
|
2018-09-08 01:31:43 +00:00
|
|
|
|
2018-12-11 13:53:32 +00:00
|
|
|
# Setup
|
2018-09-08 01:01:00 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
For convenience, `rodo` can be added to your `$PATH`. This section will guide
|
|
|
|
you through setting up a `$PATH` and adding `rodo` to your `$PATH`.
|
2019-02-25 03:36:32 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
## Setting up a $PATH
|
2018-10-20 01:36:52 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
A `$PATH` is a directory in which you can place executable files or script files. These files
|
|
|
|
can then be ran from any directory on your machine.
|
2018-12-11 13:53:32 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
Tip: If you have set up a `$PATH` already, then skip to the next step, [Adding
|
|
|
|
`rodo` to your `$PATH`](https://github.com/m455/rodo#adding-rodo-to-your-path).
|
2019-02-25 03:57:55 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
### To set up a $PATH
|
2019-01-31 14:46:14 +00:00
|
|
|
|
|
|
|
1. Create a directory for your `$PATH` by running `mkdir ~/bin/`
|
|
|
|
2. Add your newly-created `~/bin/` to your `$PATH` by running `echo "export PATH=~/bin:\$PATH" >> .bashrc`
|
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
## Adding rodo to your $PATH
|
2019-01-31 14:46:14 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
Adding `rodo` to your `$PATH` allows you to run `rodo` from any directory on your machine.
|
2019-03-09 16:37:36 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
### To add rodo to your $PATH
|
2019-02-14 20:09:47 +00:00
|
|
|
|
2019-01-31 14:46:14 +00:00
|
|
|
1. Create a file in your `~/bin/` directory with the following contents in it:
|
|
|
|
|
|
|
|
```
|
|
|
|
#!/usr/bin/env bash
|
|
|
|
racket ~/path/to/rodo.rkt "$@"
|
|
|
|
```
|
|
|
|
|
2019-02-25 03:36:32 +00:00
|
|
|
For example: If you downloaded the project to your `~/downloads/` folder you would change the line
|
2019-02-14 20:01:33 +00:00
|
|
|
`racket ~/path/to/rodo.rkt "$@"` to `racket ~/downloads/rodo/rodo.rkt "$@"`.
|
2018-09-08 01:01:00 +00:00
|
|
|
|
2018-12-11 13:53:32 +00:00
|
|
|
2. Save the file
|
|
|
|
3. Make the file executable by running `chmod u+x ~/bin/name-of-your-file`
|
2018-11-12 02:56:10 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
Tip: Racket can make executables. You can do this by running the following
|
|
|
|
command when in the same folder as the `rodo.rkt` file:
|
2019-03-13 03:43:15 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
```
|
|
|
|
raco exe rodo.rkt
|
|
|
|
```
|
2018-09-08 04:07:43 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
# List of commands
|
2018-04-18 04:04:10 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
This section lists and describes `rodo`'s commands.
|
2018-04-10 00:27:01 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
* `-h` or `--help` displays the help message
|
|
|
|
* `init` creates a file called `todo.txt` in `~/.rodo/` by default
|
|
|
|
* `ls` displays numbered items in the todo list
|
|
|
|
* `add` adds an item to the todo list
|
|
|
|
* `rm` removes an item from the todo list
|
2018-04-13 06:14:51 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
Note: You may have to run `rodo ls` to see which number corresponds to which item when removing items.
|
2018-09-08 01:01:00 +00:00
|
|
|
|
2019-04-30 00:31:36 +00:00
|
|
|
# Usage examples
|
2018-04-10 00:27:01 +00:00
|
|
|
|
2019-04-30 00:30:46 +00:00
|
|
|
The examples below assume that you have [added `rodo` to your `$PATH`](https://github.com/m455/rodo#adding-rodo-to-your-path).
|
2018-04-18 04:12:32 +00:00
|
|
|
|
2019-03-13 03:43:15 +00:00
|
|
|
`rodo -h`
|
|
|
|
|
|
|
|
`rodo --help`
|
|
|
|
|
2018-12-11 13:53:32 +00:00
|
|
|
`rodo init`
|
2018-04-13 06:14:51 +00:00
|
|
|
|
2018-12-11 13:53:32 +00:00
|
|
|
`rodo ls`
|
2018-09-08 04:30:28 +00:00
|
|
|
|
2019-03-13 03:43:15 +00:00
|
|
|
`rodo add "this is a task"`
|
2018-09-08 04:30:28 +00:00
|
|
|
|
2019-03-12 20:18:19 +00:00
|
|
|
`rodo add this is a task without quotes`
|
2018-09-08 04:30:28 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
`rodo rm 1` (This removes the first item in your list)
|
2018-04-18 04:04:10 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
Note: You may have to run `rodo ls` to see which number corresponds to which item when removing items.
|
2019-03-13 03:43:15 +00:00
|
|
|
|
2019-02-14 20:09:47 +00:00
|
|
|
# Configuring `rodo`
|
2018-04-18 04:12:32 +00:00
|
|
|
|
2019-04-30 01:35:44 +00:00
|
|
|
**Caution: Changing the `config.rkt` file should be done at your own risk as it may break `rodo`'s functionality**
|
2019-02-25 03:36:32 +00:00
|
|
|
|
|
|
|
Right now, the configurations can be found in the `config.rkt file`. Settings,
|
|
|
|
such as the program name, directory, and the filename of the todo list file can
|
|
|
|
be changed.
|
2018-10-10 19:05:54 +00:00
|
|
|
|