rodo/README.md

178 lines
6.0 KiB
Markdown
Raw Normal View History

2018-03-12 14:00:41 +00:00
# rodo
A simple todo list tool 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)
# New things added!
2019-03-02 15:53:21 +00:00
Now the default directory and todo list file have better default permissions:
* `~/.rodo/` is set to 700 by default
* `~/.rodo/todo.txt` is set to 600 by default.
2019-03-02 15:49:45 +00:00
# Todos
2018-09-08 04:32:10 +00:00
2019-03-12 00:51:03 +00:00
- **Really weird bug to solve**: `~/.rodo/todo.txt`'s file permissions change from `rw-------` to `rw-rw-r--` or `rw-rw-rw` after being modified
2019-03-12 01:49:15 +00:00
- For example:
1. Create a `test.txt` file somewhere
2. Open a Racket REPL
3. Run the following to set `600` file permissions on the file:
2019-03-12 00:46:32 +00:00
```racket
2019-03-12 01:45:47 +00:00
(file-or-directory-permissions "test.txt" #o600)
2019-03-12 00:46:32 +00:00
```
2019-03-12 01:49:15 +00:00
4. Run `ls -l` to check the file permissions
5. Run the following to modify the file:
2019-03-12 00:46:32 +00:00
```racket
2019-03-12 01:45:47 +00:00
(display-to-file "this is a test" "test.txt" #:mode 'text #:exists 'replace)
2019-03-12 00:46:32 +00:00
```
2019-03-12 01:49:15 +00:00
6. Run `ls -l` to check the file permissions to see that they have changed to either `rw-rw-r--` or `rw-rw-rw`
2019-03-12 00:52:07 +00:00
- So far, the only solution I know of would be to do:
```racket
(begin
2019-03-12 01:45:47 +00:00
(display-to-file "this is a test" "test.txt" #:mode 'text #:exists 'replace)
(file-or-directory-permissions "test.txt" #o600))
2019-03-12 00:52:07 +00:00
```
2019-03-12 01:43:35 +00:00
- Unfortunately the above solution leaves the file readable for a split second, which would be enough for another program to read information in the files
2019-03-12 00:29:34 +00:00
- Add color option to `config.rkt` file
- Encrypt `todo.txt` file
- Add note on `.bash_history` about items being added here before going into the `todo.txt` file
2018-09-13 05:17:30 +00:00
2018-09-08 01:23:57 +00:00
# Table of Contents
* [Platforms](https://github.com/m455/rodo#platforms)
2019-01-31 14:46:14 +00:00
* [Requirements](https://github.com/m455/rodo#requirements)
2018-10-10 13:19:11 +00:00
* [Downloading](https://github.com/m455/rodo#downloading)
2019-03-02 15:49:45 +00:00
* [Option one: Via Git](https://github.com/m455/rodo#option-two-via-git)
* [Option two: Via GitHub on a web browser](https://github.com/m455/rodo#option-one-via-github-on-a-web-browser)
2018-09-08 04:07:43 +00:00
* [Setup](https://github.com/m455/rodo#setup)
* [GNU/Linux](https://github.com/m455/rodo#gnulinux)
2018-09-08 01:23:57 +00:00
* [Usage](https://github.com/m455/rodo#usage)
* [Usage examples](https://github.com/m455/rodo#usage-examples)
2018-09-08 01:23:57 +00:00
* [Configuration](https://github.com/m455/rodo#configuring-rodo)
# Platforms
2018-05-20 02:03:00 +00:00
2019-02-14 20:09:47 +00:00
Below is a list of platform(s) that `rodo` is currently available for.
2018-05-20 02:03:00 +00:00
* GNU/Linux
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-02-14 20:09:47 +00:00
Below is a list of items needed for running `rodo` on your machine.
2018-09-08 01:30:36 +00:00
* [Racket 6.x](https://racket-lang.org/)
2019-03-09 16:55:26 +00:00
* [GNU coreutils](https://wiki.debian.org/coreutils) (`chmod` at least)
2018-09-08 01:01:00 +00:00
# Downloading
Currently, there are two options for downloading the source code. Choose one from the
list below:
2019-03-02 15:49:45 +00:00
## Option one: Via Git
Follow the steps below to download `rodo` using the `git` command.
2019-02-25 03:44:35 +00:00
1. Ensure `git` is installed
2. Run `git clone https://github.com/m455/rodo` on the command line
2018-09-08 01:31:43 +00:00
2019-03-02 15:49:45 +00:00
## Option two: Via GitHub on a web browser
Follow the steps below to download `rodo` from your web browser.
1. Click the *Clone or download* button at the top of this page
2. Click *Download ZIP* from the drop-down list
# Setup
2018-09-08 01:01:00 +00:00
Follow the sections below to set up `rodo`, so it can be used from anywhere on
your system.
2019-03-11 20:28:30 +00:00
**Tip: If you just want to test `rodo` out, then just `cd` into the directory you downloaded
2019-02-25 03:43:41 +00:00
`rodo` into, and then run `./rodo.rkt`.**
2018-10-20 01:36:52 +00:00
## GNU/Linux
Follow the sections below to add `rodo` to your `$PATH`, if you are using
GNU/Linux.
2019-02-14 20:01:33 +00:00
### Set up a `$PATH`
Follow the steps below if you haven't set up a `$PATH`.
2019-03-09 16:37:36 +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-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-02-14 20:01:33 +00:00
### Adding `rodo` to your `$PATH`
2019-01-31 14:46:14 +00:00
2019-03-09 16:37:36 +00:00
Follow the steps below to add the `rodo.rkt` file to your `$PATH`.
2019-03-09 16:49:28 +00:00
**Tip: If you prefer to use an executable, rather than a wrapper (see the note after step one below to see what a "wrapper" is), you can create an
2019-03-09 16:37:36 +00:00
executable binary file with `raco exe rodo.rkt` when in the same folder as the
2019-03-09 16:49:28 +00:00
`rodo.rkt` file. If you are having trouble with the `raco exe` command, refer to Racket's
2019-03-09 16:37:36 +00:00
documentation regarding the [creation of standalone executables](https://docs.racket-lang.org/raco/exe.html).**
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-03-09 16:49:28 +00:00
**Note: The file created above is called a "wrapper". This is a script that
runs the `rodo.rkt` file through the Racket interpreter. If you wish to
directly run `rodo` as an executable from your `$PATH`, see the tip above**
2019-03-09 16:43:46 +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
2. Save the file
2018-10-10 13:19:11 +00:00
3. Make the file executable by running `chmod u+x ~/bin/name-of-your-file`
2018-11-12 02:56:10 +00:00
# Usage
2018-05-20 02:03:00 +00:00
Type `rodo` plus one of the commands below with a space
between `rodo` and the command.
2018-05-20 02:03:00 +00:00
2019-02-25 03:49:46 +00:00
`init` - Initializes a file called `todo.txt` in `~/.rodo/` by default
2019-03-09 16:40:19 +00:00
**Note: The directory and filename can be changed by modifying the `config.rkt` file**
2018-09-08 04:07:43 +00:00
`ls` - Displays items from the todo list in a vertical format
`add` - Adds an entry to the todo list
2018-04-10 00:27:01 +00:00
`rm` - Removes an item from the todo list
2018-04-13 06:14:51 +00:00
2019-03-09 16:40:19 +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
## Usage examples
2018-04-10 00:27:01 +00:00
The examples below assume that you have `rodo` [set up in your `$PATH`](https://github.com/m455/rodo#set-up-a-path) in your `$PATH`
`rodo init`
2018-04-13 06:14:51 +00:00
`rodo ls`
2018-09-08 04:30:28 +00:00
`rodo add "go to the park"`
2018-09-08 04:30:28 +00:00
2019-03-11 20:28:30 +00:00
**Note: If you leave out the double quotation marks here, only the first word
will be added. In the example above, only "go" would be added to the list.**
2018-09-08 04:30:28 +00:00
`rodo rm 1`
2019-02-14 20:09:47 +00:00
# Configuring `rodo`
2019-03-09 16:40:19 +00:00
**Caution: Change the `config.rkt` file at your own risk, as it may break things!**
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