From d971540ec6efdec601505b6c8b55dcd85072f8e0 Mon Sep 17 00:00:00 2001 From: Nikolaus Gotsche Date: Sun, 23 Sep 2018 23:58:33 +0200 Subject: LongHelp added, temporarely switched to ishell fork --- interact.go | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 6 deletions(-) diff --git a/interact.go b/interact.go index 4ed7bc8..6616f8f 100644 --- a/interact.go +++ b/interact.go @@ -7,7 +7,8 @@ import ( "fmt" "time" - "github.com/abiosoft/ishell" + //"github.com/abiosoft/ishell" + "github.com/EPRparadox82/ishell" "github.com/fatih/color" ) @@ -15,6 +16,8 @@ import ( func interact() { //stdOut() shell := ishell.New() + shell.SetMultiChoicePrompt(" ->"," - ") + shell.SetChecklistOptions("[ ] ","[X] ") //fmt.Println(os.Args) //cyan := color.New(color.FgCyan).SprintFunc() @@ -36,7 +39,9 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "new", Help: "Start new Project", - LongHelp: "If no Task is currently running a new project will be added to database and activated", + LongHelp: ` Usage: new + If no Task is currently running a new project will be added to database and opened. + When there is an open Task the user will be notified to stop it before adding a new Project`, Func: func(c *ishell.Context) { //c.Print("\033[H\033[2J") //c.Println(boldGreen("Start New Project")) @@ -49,7 +54,10 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "config", Help: "View and Edit Configuration", - LongHelp: "Contains the location of the database file and the Personal Data needed for billing", + LongHelp: ` Usage: config + Show the current configuration and ask if it should be edited. + Configurations contains the location of the database file and the Personal Data needed for billing + If config is edited press on empty line to keep the old entry`, Func: func(c *ishell.Context) { editConf() c.Println(promptcol("______________________")) @@ -59,6 +67,8 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "status", Help: "Show Current Project and Tasks", + LongHelp: ` Usage: status + Shows the current Project, its last Tasks and if there is a open Task.`, Func: func(c *ishell.Context) { stdOut() c.Println(promptcol("______________________")) @@ -68,6 +78,8 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "add", Help: "Add new Customer", + LongHelp: ` Usage: add + Add a new Customer to Database`, Func: func(c *ishell.Context) { addCustomer() c.Println(promptcol("______________________")) @@ -77,6 +89,8 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "startnow", Help: "Start a new Task immediately", + LongHelp: ` Usage: startnow + Start a new Task in the currently open Project with current local time`, Func: func(c *ishell.Context) { newTask(currproject.id) stdOut() @@ -87,6 +101,9 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "stopnow", Help: "Stop the currently Open Task immediately", + LongHelp: ` Usage: stopnow + Stop the open Task at the current local time. + If no task is open the user will be notified.`, Func: func(c *ishell.Context) { closeTask() stdOut() @@ -97,6 +114,8 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "deletebill", Help: " Delete a Bill with the following id", + LongHelp: ` Usage: deletebill + Delete the bill of the set and set its Task back to unbilled`, Func: func(c *ishell.Context) { arg := "none" if len(c.Args) > 0 { @@ -119,6 +138,8 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "deletetask", Help: " Delete a Task with the following id", + LongHelp: ` Usage: deletetask + Delete the Task of the set `, Func: func(c *ishell.Context) { arg := "none" if len(c.Args) > 0 { @@ -141,6 +162,9 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "project", Help: " Open a Project of the following id", + LongHelp: ` Usage: project + Open the Project with the set + If there is an open Task the user will be notified to close it first.`, Func: func(c *ishell.Context) { arg := "none" if len(c.Args) > 0 { @@ -163,6 +187,9 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "edittask", Help: " Edit a Task of the following id", + LongHelp: ` Usage: edittask + Edit Task of the set . + Press on empty line to keep the old entry`, Func: func(c *ishell.Context) { arg := "none" if len(c.Args) > 0 { @@ -183,6 +210,9 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "editproject", Help: " Edit the Project of the following id", + LongHelp: ` Usage: editproject + Edit Project of the set . + Press on empty line to keep the old entry`, Func: func(c *ishell.Context) { arg := "none" if len(c.Args) > 0 { @@ -206,6 +236,9 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "editcustomer", Help: " Edit the Customer of the following id", + LongHelp: ` Usage: editcustomer + Edit Customer of the set . + Press on empty line to keep the old entry`, Func: func(c *ishell.Context) { arg := "none" if len(c.Args) > 0 { @@ -229,6 +262,10 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "start", Help: " - Start Task at a specific Time 'YYYY-MM-DD HH:MM' Or 'HH:MM'", + LongHelp: ` Usage: start + Start a new Task in the currently open Project at . + Use Format "YYYY-MM-DD HH:MM" or "HH:MM" for datetime. + If the latter is used the current local Date will be set.`, Func: func(c *ishell.Context) { arg := "none" if len(c.Args) > 0 { @@ -245,6 +282,11 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "stop", Help: " - Stop Open Task at a specific Time 'YYYY-MM-DD HH:MM' Or 'HH:MM'", + LongHelp: ` Usage: stop + Stop the active Task at . + Use Format "YYYY-MM-DD HH:MM" or "HH:MM" for datetime. + If the latter is used the current local Date will be set. + In case of a Stop-time before Task start user will be notified.`, Func: func(c *ishell.Context) { arg := "none" if len(c.Args) > 0 { @@ -261,6 +303,8 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "all", Help: "Show all Projects", + LongHelp: ` Usage: all + Show all Projects with small summary sorted by Customer.`, Func: func(c *ishell.Context) { allProjects() stdOut() @@ -271,6 +315,8 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "allbills", Help: "Show all Bills", + LongHelp: ` Usage: allbills + Show all previous Bills with small summary.`, Func: func(c *ishell.Context) { showLastBills(0) c.Println(promptcol("______________________")) @@ -280,6 +326,8 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "showbills", Help: " - Show the last n bills", + LongHelp: ` Usage: showbills + Show the last n Bills with a small summary.`, Func: func(c *ishell.Context) { //c.ClearScreen() arg := "none" @@ -340,9 +388,11 @@ func interact() { // Prompt Color shell.AddCmd(&ishell.Cmd{ - Name: "colorprompt", - Help: "Select the Color of the prompt", - Func: func(c *ishell.Context) { + Name: "colorprompt", + Help: "Select the Color of the prompt", + LongHelp: ` Usage: colorprompt + Select the color of the prompt`, + Func: func(c *ishell.Context) { choice := c.MultiChoice([]string{ boldMag("Magenta"), boldBlue("Blue"), @@ -380,6 +430,10 @@ func interact() { shell.AddCmd(&ishell.Cmd{ Name: "bill", Help: "Select Tasks to be billed", + LongHelp: ` Usage: bill + Select the tasks that should be merged into a Bill. + The Initial selection cannot be changed afterward. Only the complete + bill can be deleted and a new selection made.`, Func: func(c *ishell.Context) { nix := []int{0} ids,str := getTaskList(nix,true) -- cgit v1.2.3