Skip to content

Commit

Permalink
Merge pull request #78 from rprouse/issue/52
Browse files Browse the repository at this point in the history
Update Readme and include in NuGet package
  • Loading branch information
rprouse authored Sep 30, 2024
2 parents da44fb9 + dc9a5ce commit 425a3ea
Show file tree
Hide file tree
Showing 6 changed files with 289 additions and 270 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/dotnet-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
run: dotnet test --no-restore --verbosity normal

- name: 📦 Package NuGet
run: dotnet pack --no-build --configuration Release
run: dotnet pack --no-build --configuration Release src/todo/todo.csproj

- name: 📤 Upload Artifacts
uses: actions/upload-artifact@v3
Expand Down
56 changes: 56 additions & 0 deletions Build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Build Instructions

## Testing Locally

Build it, then package it using the **Pack** command in Visual Studio or `dotnet pack`
on the command line. Until this package is published, install it using the following
command line from the solution root;

```sh
dotnet tool install -g --add-source .\src\todo\nupkg\ dotnet-todo
```

To update from a previous version,

```sh
dotnet tool update -g --add-source .\src\todo\nupkg\ dotnet-todo
```

## Installing from GitHub Packages

Whenever the version is updated in `src/todo/todo.csproj`, a merge to master will publish the NuGet package
to [GitHub Packages](https://github.com/rprouse?tab=packages). You can install or update from there.

First you must update your global NuGet configuration to add the package registry and include the GitHub Personal
Access Token (PAT). This file is in `%appdata%\NuGet\NuGet.Config` on Windows and in `~/.config/NuGet/NuGet.Config`
or `~/.nuget/NuGet/NuGet.Config` on Linux/Mac.

```xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="Local" value="C:\temp" />
<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
<add key="github" value="https://nuget.pkg.github.com/rprouse/index.json" />
</packageSources>
<packageSourceCredentials>
<github>
<add key="Username" value="rprouse" />
<add key="ClearTextPassword" value="GITHUB_PAT" />
</github>
</packageSourceCredentials>
</configuration>
```

Once that is done, to install,

```sh
dotnet tool install -g dotnet-todo
```

And to update from a previous version,

```sh
dotnet tool update -g dotnet-todo
```
215 changes: 215 additions & 0 deletions Help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
# Help

## Actions

### `add`
Adds "THING I NEED TO DO" to your todo.txt file on its own line.

Project and context notation optional.

```shell
todo add "THING I NEED TO DO +project @context"
todo a "THING I NEED TO DO +project @context"
```

### `addm`
Adds "FIRST THING I NEED TO DO" to your todo.txt on its own line and
adds "SECOND THING I NEED TO DO" to you todo.txt on its own line.

Project and context notation optional.

```shell
todo addm "FIRST THING I NEED TO DO +project1 @context" "SECOND THING I NEED TO DO +project2 @context"
```

### `addto`
Adds a line of text to any file located in the todo.txt directory.

For example, `addto inbox.txt "decide about vacation"`

```shell
todo addto DEST "TEXT TO ADD"
```

### `append`
Adds TEXT TO APPEND to the end of the task on line ITEM#.

```shell
todo append ITEM# "TEXT TO APPEND"
todo app ITEM# "TEXT TO APPEND"
```

### `archive`
Moves all done tasks from todo.txt to done.txt and removes blank lines.

```shell
todo archive
```

### `deduplicate`
Removes duplicate lines from todo.txt.

```shell
todo deduplicate
```

### `del`
Deletes the task on line ITEM# in todo.txt. If TERM specified, deletes only
TERM from the task.

```shell
todo del ITEM# [TERM]
todo rm ITEM# [TERM]
```

### `depri`
Deprioritizes (removes the priority) from the task(s) on line ITEM# in todo.txt.

```shell
todo depri ITEM#[, ITEM#, ITEM#, ...]
todo dp ITEM#[, ITEM#, ITEM#, ...]
```

### `do`
Marks task(s) on line ITEM# as done in todo.txt.

```shell
todo do ITEM#[, ITEM#, ITEM#, ...]
```

### `help`
Display help about usage, options, built-in and add-on actions, or just the usage
help for the passed ACTION(s).

```shell
todo help [ACTION...]
```

### `list`
Displays all tasks that contain TERM(s) sorted by priority with line numbers. Each
task must match all TERM(s) (logical AND). Hides all tasks that contain TERM(s)
preceded by a minus sign (i.e. `-TERM`).

If no TERM specified, lists entire todo.txt.
```shell
todo list [TERM...]
todo ls [TERM...]
```

### `listall`
Displays all the lines in todo.txt AND done.txt that contain TERM(s) sorted by
priority with line numbers. Hides all tasks that contain TERM(s) preceded by a
minus sign (i.e. `-TERM`).

If no TERM specified, lists entire todo.txt AND done.txt concatenated and sorted.

```shell
todo listall [TERM...]
todo lsa [TERM...]
```

### `listcon`
Lists all the task contexts that start with the @ sign in todo.txt.

If TERM specified, considers only tasks that contain TERM(s).

```shell
todo listcon [TERM...]
todo lsc [TERM...]
```

### `listfile`
Displays all the lines in SRC file located in the todo.txt directory, sorted by
priority with line numbers. If TERM specified, lists all lines that contain TERM(s)
in SRC file. Hides all tasks that contain TERM(s) preceded by a minus sign (i.e. `-TERM`).

Without any arguments, the names of all text files in the todo.txt directory are listed.

```shell
todo listfile [SRC [TERM...]]
todo lf [SRC [TERM...]]
```
### `listpri`
Displays all tasks prioritized PRIORITIES. PRIORITIES can be a single one (A) or a range
(A-C). If no PRIORITIES specified, lists all prioritized tasks. If TERM specified, lists
only prioritized tasks that contain TERM(s). Hides all tasks that contain TERM(s) preceded
by a minus sign (i.e. `-TERM`).
```shell
todo listpri [PRIORITIES] [TERM...]
todo lsp [PRIORITIES] [TERM...]
```
### `listproj`
Lists all the projects (terms that start with a `+` sign) in todo.txt. If TERM specified,
considers only tasks that contain TERM(s).
```shell
todo listproj [TERM...]
todo lsprj [TERM...]
```
### `move`
Moves a line from source text file (SRC) to destination text file (DEST). Both source
and destination file must be located in the directory defined in the configuration
directory. When SRC is not defined it's by default todo.txt.
```shell
todo move ITEM# DEST [SRC]
todo mv ITEM# DEST [SRC]
```
### `prepend`
Adds TEXT TO PREPEND to the beginning of the task on line ITEM#.
```shell
todo prepend ITEM# "TEXT TO PREPEND"
todo prep ITEM# "TEXT TO PREPEND"
```
### `pri`
Adds PRIORITY to task on line ITEM#. If the task is already prioritized, replaces
current priority with new PRIORITY. PRIORITY must be a letter between A and Z.
```shell
todo pri ITEM# PRIORITY
todo p ITEM# PRIORITY
```
### `replace`
Replaces task on line ITEM# with UPDATED TODO.
```shell
todo replace ITEM# "UPDATED TODO"
```
## Options
### `-@`
Hide context names in list output.
### `-+`
Hide project names in list output.
### `-d CONFIG_FILE`
Use a configuration file other than the default `~/.todo/config`
### `-f`
Forces actions without confirmation or interactive input.
### `-p`
Plain mode turns off colors
### `-P`
Hide priority labels in list output.
### `-a`
Don't auto-archive tasks automatically on completion
### `-t`
Prepend the current date to a task automatically when it's added.
### `--version`
Displays version, license and credits
Loading

0 comments on commit 425a3ea

Please sign in to comment.