Skip to content
This repository has been archived by the owner on May 11, 2024. It is now read-only.

#12,#13: Added CLI Commands #15

Merged
merged 7 commits into from
Feb 29, 2024
Merged

#12,#13: Added CLI Commands #15

merged 7 commits into from
Feb 29, 2024

Conversation

src/main.rs Outdated Show resolved Hide resolved
src/main.rs Outdated Show resolved Hide resolved
src/main.rs Outdated Show resolved Hide resolved
src/main.rs Outdated Show resolved Hide resolved
src/main.rs Outdated Show resolved Hide resolved
src/main.rs Outdated Show resolved Hide resolved
src/main.rs Outdated Show resolved Hide resolved
src/main.rs Outdated Show resolved Hide resolved
@kirillt
Copy link
Member

kirillt commented Jan 13, 2024

Good work so far. Couple more enhancements would be great:

  • Separate list and read commands
  • Command list must not read content of storages, they can be huge
  • Commands read and insert should recognize "official" storage names
  • Home directory or . should be used by default to store the app id
  • Don't split file-based and folder-based storages by -a flag

@kirillt
Copy link
Member

kirillt commented Jan 19, 2024

Here are some key points for better UX:

  • storage resolution should support combinations of name/path and id
  • list without arguments should just list existing storage names
  • list -v should additionally list versions
  • list <storage> and list <storage> -v should work similarly to list and list -v
  • read should allow selecting particular JSON fields
  • insert should initialize the storage if it's absent
  • there should be a way to add new lines in arbitrary syntax (append --raw?)

Nice-to-have:

  • support selecting versions by version number
  • support selecting versions by app_id, if it's provided then we present the latest version marked with it
  • unit tests for storage resolution

@kirillt
Copy link
Member

kirillt commented Jan 21, 2024

  • Would be great to create "id API" which would work smoothly both for file-based and folder-based storages. File-based storages contain ids inside each version, and folder-based ones contain versions inside each id.

  • Command list without arguments doesn't work, it should list existing storages (without versions):

$ ./ark-cli file list
error: The following required arguments were not provided:
    <STORAGE>
  • Listing for scores doesn't work:
$ tree .ark/user/scores/
.ark/user/scores/
├── scores_0592a937-a5d1-4843-8f03-ae0d6a9e77b5.1
└── scores_0592a937-a5d1-4843-8f03-ae0d6a9e77b5.2

1 directory, 2 files
$ ./ark-cli file list scores
Loading app id at /home/kirill/.ark...

$ ./ark-cli file list scores -v
Loading app id at /home/kirill/.ark...
version  name           machine                              path
  • Reading for properties doesn't work:
$ tree .ark/user/properties/
.ark/user/properties/
└── 47-3661002066
    └── 47-3661002066_9da97f86c8b049498bd93fae97e7072d.1

2 directories, 1 file

$ cat .ark/user/properties/47-3661002066/47-3661002066_9da97f86c8b049498bd93fae97e7072d.1 
{"desc":null,"title":"asd"}

$ ./ark-cli file read properties
Loading app id at /home/kirill/.ark...
ERROR: File not found

$ ./ark-cli file read scores
Loading app id at /home/kirill/.ark...
version  name           machine                              path
2        scores         0592a937-a5d1-4843-8f03-ae0d6a9e77b5 /home/kirill/.ark-shelf/.ark/user/scores/scores_0592a937-a5d1-4843-8f03-ae0d6a9e77b5.2

{
  "12-34567": "8"
}

@kirillt kirillt changed the title Added CLI Commands #12,#13: Added CLI Commands Jan 22, 2024
src/commands/file.rs Outdated Show resolved Hide resolved
src/storage.rs Outdated Show resolved Hide resolved
@kirillt
Copy link
Member

kirillt commented Feb 19, 2024

For list command:

  • Abbreviations: -i for --entry ID, -p for --entry path, -b for --entry both, -t for --tags true, -s for --scores true, -m for --timestamp true. Also probably rename --timestamp into --modified?
  • Write something special for "neutral" values (like zero score or empty tags), so it would be easy to filter, e.g. with ark-cli list -itsm | grep "without tags"

@kirillt
Copy link
Member

kirillt commented Feb 29, 2024

@alvinosh Great job!

@kirillt kirillt merged commit 95f56b6 into main Feb 29, 2024
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants