Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Todo list #11

Open
15 of 24 tasks
proditis opened this issue Dec 7, 2022 · 0 comments
Open
15 of 24 tasks

Todo list #11

proditis opened this issue Dec 7, 2022 · 0 comments

Comments

@proditis
Copy link
Owner

proditis commented Dec 7, 2022

These are some of the initial things we want to do for the project.

  • Use methods to simplify some operations and avoid passing certain values as arguments https://gobyexample.com/methods
  • Update usage and readme to include that the application and subcommands also support -help
  • add exclude tags filtering (ie -tags a,b,c -etags d will list words from a,b,c tags and that dont have d tag)
  • Check if we can add loading database to memory to speed things up
  • Add support for case sensitive words if needed (this involves using collate nocase on the schema and our search)
  • Add support to search for -words as well as -tags
  • Make operations into subcommands
    • list,ls: display entries from -tags or -words
    • delete, rm: delete either -tags list or -words list. When both are given then only their explicit relation from wt table will be deleted.
  • Add -st (for show-tags) support on searchSubcmd which will include the a comma separated list of the tags of each entry eg word1 => tag1,tag2,tag3 #28
  • help: Details usage of all operations
  • import: imports a file into the database
  • search: searches the database for the given tags
  • add: add entries to the database from the cli
  • vacuum: pack the database to save space
  • Fix the tags logic for search its broken right now. If tags where given but not found then WE MUST NOT return results.
  • Introduce test cases #18
  • Split operations into multiple files to ease development and avoid conflicts in merge #16
  • use log.* functions instead of fmt.println where appropriate.
  • only open the database for write when we do imports. in any other case ?mode=readonly
  • Make a proper module structure and ensure the dependencies get installed from go.mod
  • Add Github workflow to build binary releases
  • Make sure the database files are created into the current working directory and not wherever the binary is installed
  • Make the -db flag only on main()
@proditis proditis pinned this issue Dec 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant