updated the readme and renamed some values and functions
This commit is contained in:
		
							parent
							
								
									c04cef8310
								
							
						
					
					
						commit
						41871110d4
					
				
							
								
								
									
										142
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										142
									
								
								README.md
									
									
									
									
									
								
							@ -8,124 +8,80 @@ A minimal to-do list program for people who live on the command line.
 | 
			
		||||
 | 
			
		||||
# Table of Contents
 | 
			
		||||
 | 
			
		||||
- [rodo](#rodo)
 | 
			
		||||
- [Screenshot](#screenshot)
 | 
			
		||||
- [Table of Contents](#table-of-contents)
 | 
			
		||||
- [TL;DR](#tldr)
 | 
			
		||||
- [New features](#new-features)
 | 
			
		||||
- [To-dos](#to-dos)
 | 
			
		||||
- [Platforms](#platforms)
 | 
			
		||||
- [Installing rodo](#installing-rodo)
 | 
			
		||||
    - [Requirements](#requirements)
 | 
			
		||||
- [Requirements](#requirements)
 | 
			
		||||
    - [Downloading Racket](#downloading-racket)
 | 
			
		||||
        - [To download Racket using apt](#to-download-racket-using-apt)
 | 
			
		||||
        - [To download Racket using pacman](#to-download-racket-using-pacman)
 | 
			
		||||
    - [Downloading the rodo source code](#downloading-the-rodo-source-code)
 | 
			
		||||
        - [To download the rodo source code](#to-download-the-rodo-source-code)
 | 
			
		||||
- [Setup](#setup)
 | 
			
		||||
    - [Setting up a $PATH](#setting-up-a-path)
 | 
			
		||||
        - [To set up a $PATH](#to-set-up-a-path)
 | 
			
		||||
    - [Adding rodo to your $PATH](#adding-rodo-to-your-path)
 | 
			
		||||
        - [To add rodo to your $PATH](#to-add-rodo-to-your-path)
 | 
			
		||||
- [List of commands](#list-of-commands)
 | 
			
		||||
- [Usage examples](#usage-examples)
 | 
			
		||||
- [Configuring `rodo`](#configuring-rodo)
 | 
			
		||||
- [Configuring rodo](#configuring-rodo)
 | 
			
		||||
- [Todos](#todos)
 | 
			
		||||
 | 
			
		||||
# TL;DR
 | 
			
		||||
 | 
			
		||||
1. Make sure [Racket](https://racket-lang.org/) is installed
 | 
			
		||||
2. `git clone https://github.com/m455/rodo` into a directory of your choice
 | 
			
		||||
3. `cd` into the `rodo` directory
 | 
			
		||||
4. Choose one of the options below for running `rodo`.
 | 
			
		||||
    * 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`
 | 
			
		||||
5. (optional) Add the following to your `$PATH` directory to run `rodo` from anywhere.
 | 
			
		||||
4. Choose one of the options below for running rodo:
 | 
			
		||||
    * 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 rodo into a single-file executable.
 | 
			
		||||
        2. Run `./rodo`.
 | 
			
		||||
5. (optional) Create a wrapper in your `$PATH` directory to run rodo from anywhere:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
racket ~/path/to/rodo.rkt "$@"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Note: If you made an executable, remember to change the `rodo.rkt` part above to `rodo`
 | 
			
		||||
 | 
			
		||||
# Platforms
 | 
			
		||||
 | 
			
		||||
Below is a list of platforms that `rodo` can run on.
 | 
			
		||||
Below is a list of platforms that rodo can run on.
 | 
			
		||||
 | 
			
		||||
* Windows Subsystem for Linux
 | 
			
		||||
* GNU/Linux
 | 
			
		||||
* Windows Subsystem for Linux
 | 
			
		||||
* macOS (Untested)
 | 
			
		||||
 | 
			
		||||
# Installing rodo
 | 
			
		||||
# Requirements
 | 
			
		||||
 | 
			
		||||
This section will guide you through installing `rodo`, so you can use it on your platform.
 | 
			
		||||
The following items must be installed before you can use rodo:
 | 
			
		||||
 | 
			
		||||
## Requirements
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
* [Racket 6.x](https://racket-lang.org/)
 | 
			
		||||
* `rodo` source code
 | 
			
		||||
* Racket: [https://racket-lang.org/](https://racket-lang.org/)
 | 
			
		||||
* rodo's source code: [https://github.com/m455/rodo](https://github.com/m455/rodo)
 | 
			
		||||
 | 
			
		||||
## Downloading Racket
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
### 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
 | 
			
		||||
1. run `sudo apt install racket` on the command line
 | 
			
		||||
 | 
			
		||||
## 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:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
git clone https://github.com/m455/rodo your-directory-name/
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# Setup
 | 
			
		||||
 | 
			
		||||
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`.
 | 
			
		||||
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`.
 | 
			
		||||
 | 
			
		||||
## Setting up a $PATH
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
A `$PATH` is a directory in which you can place executable files or scripts.
 | 
			
		||||
After placing executable files or scripts in your `$PATH` directory, you can run
 | 
			
		||||
these files or scripts from any directory on your machine.
 | 
			
		||||
 | 
			
		||||
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).
 | 
			
		||||
 | 
			
		||||
### To set up a $PATH
 | 
			
		||||
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).
 | 
			
		||||
 | 
			
		||||
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`
 | 
			
		||||
 | 
			
		||||
## Adding rodo to your $PATH
 | 
			
		||||
 | 
			
		||||
Adding `rodo` to your `$PATH` allows you to run `rodo` from any directory on your machine.
 | 
			
		||||
 | 
			
		||||
### To add rodo to your $PATH
 | 
			
		||||
 | 
			
		||||
1. Create a file in your `~/bin/` directory with the following contents in it:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
@ -139,28 +95,21 @@ For example: If you downloaded the project to your `~/downloads/` folder you wou
 | 
			
		||||
2. Save the file
 | 
			
		||||
3. Make the file executable by running `chmod u+x ~/bin/name-of-your-file`
 | 
			
		||||
 | 
			
		||||
Tip: Racket can make executables. You can do this by running the following
 | 
			
		||||
command when in the same folder as the `rodo.rkt` file:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
raco exe rodo.rkt
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# List of commands
 | 
			
		||||
 | 
			
		||||
This section lists and describes `rodo`'s commands.
 | 
			
		||||
This section lists and describes rodo's commands.
 | 
			
		||||
 | 
			
		||||
* `-h` or `--help` displays the help message
 | 
			
		||||
* `init` creates a file called `to-do.txt` in `~/.rodo/` by default
 | 
			
		||||
* `ls` displays numbered items in the to-do list
 | 
			
		||||
* `add` adds an item to the to-do list
 | 
			
		||||
* `rm` removes an item from the to-do list
 | 
			
		||||
* `init` creates a list file (See the `config.rkt` file for the default * location of this file)
 | 
			
		||||
* `ls` displays your list
 | 
			
		||||
* `add` adds an item to your list
 | 
			
		||||
* `rm` removes an item from your list
 | 
			
		||||
 | 
			
		||||
Note: You may have to run `rodo ls` to see which number corresponds to which item when removing items.
 | 
			
		||||
Note: You may have to run `rodo ls` to see which number corresponds to which item in your list.
 | 
			
		||||
 | 
			
		||||
# Usage examples
 | 
			
		||||
 | 
			
		||||
The examples below assume that you have [added `rodo` to your `$PATH`](https://github.com/m455/rodo#adding-rodo-to-your-path).
 | 
			
		||||
The examples below assume that you have [added rodo to your $PATH](https://github.com/m455/rodo#adding-rodo-to-your-path).
 | 
			
		||||
 | 
			
		||||
`rodo -h`
 | 
			
		||||
 | 
			
		||||
@ -170,34 +119,25 @@ The examples below assume that you have [added `rodo` to your `$PATH`](https://g
 | 
			
		||||
 | 
			
		||||
`rodo ls`
 | 
			
		||||
 | 
			
		||||
`rodo add "this is a task"`
 | 
			
		||||
`rodo add "this is an item"`
 | 
			
		||||
 | 
			
		||||
`rodo add this is a task without quotes`
 | 
			
		||||
`rodo add this is an item without quotation marks`
 | 
			
		||||
 | 
			
		||||
`rodo rm 1` (This removes the first item in your to-do list)
 | 
			
		||||
`rodo rm 1` (This removes the first item from your list)
 | 
			
		||||
 | 
			
		||||
Note: You may have to run `rodo ls` to see which number corresponds to which item when removing items.
 | 
			
		||||
Note: You may have to run `rodo ls` to see which number corresponds to which item in your list.
 | 
			
		||||
 | 
			
		||||
# Configuring `rodo`
 | 
			
		||||
# Configuring rodo
 | 
			
		||||
 | 
			
		||||
**Caution: Changing the `config.rkt` file should be done at your own risk as it may break `rodo`'s functionality**
 | 
			
		||||
**Caution: Changing the `config.rkt` file should be done at your own risk as it may break rodo's functionality**
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
# New features
 | 
			
		||||
 | 
			
		||||
Now the default directory and todo list file have better default permissions:
 | 
			
		||||
 | 
			
		||||
* `rodo` is now licensed under AGPL3!
 | 
			
		||||
* `~/.rodo/` is set to 700 by default
 | 
			
		||||
* `~/.rodo/to-do.txt` is set to 600 by default.
 | 
			
		||||
 | 
			
		||||
# To-dos
 | 
			
		||||
# Todos
 | 
			
		||||
 | 
			
		||||
When I have time, I plan on adding the following features to rodo:
 | 
			
		||||
 | 
			
		||||
- Add a purpose, context, and overview for each h1 in `README.md`
 | 
			
		||||
- A boolean color option in the `config.rkt` file
 | 
			
		||||
- Encrypt/decrypt `to-do.txt` file
 | 
			
		||||
- Colour
 | 
			
		||||
- Encrypted list files
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@
 | 
			
		||||
 | 
			
		||||
(define program-name "rodo")
 | 
			
		||||
(define program-directory (path->string (expand-user-path "~/.rodo/")))
 | 
			
		||||
(define program-file "to-do.txt")
 | 
			
		||||
(define program-file "todo.txt")
 | 
			
		||||
(define remove-command "rm")
 | 
			
		||||
(define add-command "add")
 | 
			
		||||
(define list-command "ls")
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								messages.rkt
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								messages.rkt
									
									
									
									
									
								
							@ -30,7 +30,7 @@
 | 
			
		||||
               ;; init
 | 
			
		||||
               (format "~a\n" config:initialize-command)
 | 
			
		||||
               "====\n"
 | 
			
		||||
               (format "Creates ~a in ~a. This is where your to-do list will be stored.\n\n"
 | 
			
		||||
               (format "Creates ~a in ~a. This is where your todo list will be stored.\n\n"
 | 
			
		||||
                       config:program-file
 | 
			
		||||
                       config:program-directory)
 | 
			
		||||
 | 
			
		||||
@ -40,7 +40,7 @@
 | 
			
		||||
               ;; ls
 | 
			
		||||
               (format "~a\n" config:list-command)
 | 
			
		||||
               "====\n"
 | 
			
		||||
               "Displays items in your to-do list.\n\n"
 | 
			
		||||
               "Displays items in your todo list.\n\n"
 | 
			
		||||
 | 
			
		||||
               "Example:\n"
 | 
			
		||||
               (format "~a ~a\n\n" config:program-name config:list-command)
 | 
			
		||||
@ -60,11 +60,11 @@
 | 
			
		||||
               "Example:\n"
 | 
			
		||||
               (format "~a ~a 1\n\n" config:program-name config:remove-command)
 | 
			
		||||
 | 
			
		||||
               (format "Note: You may have to run `~a ~a` to see which number corresponds to which item in your to-do list."
 | 
			
		||||
               (format "Note: You may have to run `~a ~a` to see which number corresponds to which item in your todo list."
 | 
			
		||||
                       config:program-name
 | 
			
		||||
                       config:list-command)
 | 
			
		||||
               " "
 | 
			
		||||
               "In the example above, the first item was removed from the to-do list.\n\n"
 | 
			
		||||
               "In the example above, the first item was removed from the todo list.\n\n"
 | 
			
		||||
 | 
			
		||||
               "Can't see the whole help message?\n"
 | 
			
		||||
               "=================================\n"
 | 
			
		||||
@ -73,7 +73,7 @@
 | 
			
		||||
               " "
 | 
			
		||||
               "When you want to quit, type `q` (without the grave accents).\n")
 | 
			
		||||
 | 
			
		||||
   'empty-to-do-list "> There is nothing in your list.\n"
 | 
			
		||||
   'empty-todo-list "> There is nothing in your list.\n"
 | 
			
		||||
 | 
			
		||||
   'show-usage (format "> For usage type `~a -h` or `~a --help`.\n"
 | 
			
		||||
                       config:program-name
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								util.rkt
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								util.rkt
									
									
									
									
									
								
							@ -29,10 +29,10 @@
 | 
			
		||||
  (display (hash-ref hash-list key)))
 | 
			
		||||
 | 
			
		||||
(define (file->string-list config:path-to-file-to-file)
 | 
			
		||||
  (let ([to-do-list (file:file->lines config:path-to-file-to-file
 | 
			
		||||
  (let ([todo-list (file:file->lines config:path-to-file-to-file
 | 
			
		||||
                                      #:mode 'text
 | 
			
		||||
                                      #:line-mode 'any)])
 | 
			
		||||
    to-do-list))
 | 
			
		||||
    todo-list))
 | 
			
		||||
 | 
			
		||||
(define (list-empty? lst)
 | 
			
		||||
  (list:empty? (file->string-list lst)))
 | 
			
		||||
@ -81,7 +81,7 @@
 | 
			
		||||
          (check-for-program-file))
 | 
			
		||||
         (if
 | 
			
		||||
          (list-empty? config:path-to-file)
 | 
			
		||||
          (display-hash-ref messages:messages 'empty-to-do-list)
 | 
			
		||||
          (display-hash-ref messages:messages 'empty-todo-list)
 | 
			
		||||
          (display-prettified-program-file))]
 | 
			
		||||
        [else
 | 
			
		||||
         (display-hash-ref messages:messages 'file-not-found)
 | 
			
		||||
@ -120,7 +120,7 @@
 | 
			
		||||
 | 
			
		||||
(define (remove-item-from-list args)
 | 
			
		||||
  (cond [(list-empty? config:path-to-file)
 | 
			
		||||
         (display-hash-ref messages:messages 'empty-to-do-list)]
 | 
			
		||||
         (display-hash-ref messages:messages 'empty-todo-list)]
 | 
			
		||||
        [(and (check-for-program-directory)
 | 
			
		||||
              (check-for-program-file))
 | 
			
		||||
         (remove-item-from-program-file (vector-ref args 1))]
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user