mirror of
				https://github.com/taigrr/wtf
				synced 2025-01-18 04:03:14 -08:00 
			
		
		
		
	Add basic textfile widget.
This commit is contained in:
		
							parent
							
								
									693a04b5e1
								
							
						
					
					
						commit
						c3abb76612
					
				
							
								
								
									
										64
									
								
								textfile/widget.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								textfile/widget.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					package textfile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"fmt"
 | 
				
			||||||
 | 
						"io/ioutil"
 | 
				
			||||||
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/olebedev/config"
 | 
				
			||||||
 | 
						"github.com/senorprogrammer/wtf/homedir"
 | 
				
			||||||
 | 
						"github.com/senorprogrammer/wtf/wtf"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var Config *config.Config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type Widget struct {
 | 
				
			||||||
 | 
						wtf.TextWidget
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						FilePath string
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func NewWidget() *Widget {
 | 
				
			||||||
 | 
						widget := Widget{
 | 
				
			||||||
 | 
							TextWidget: wtf.NewTextWidget("TextFile", "textfile"),
 | 
				
			||||||
 | 
							FilePath:   Config.UString("wtf.mods.textfile.filepath"),
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						widget.View.SetWrap(true)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return &widget
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* -------------------- Exported Functions -------------------- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (widget *Widget) Refresh() {
 | 
				
			||||||
 | 
						if widget.Disabled() {
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						widget.View.SetTitle(fmt.Sprintf(" %s ", widget.FilePath))
 | 
				
			||||||
 | 
						widget.RefreshedAt = time.Now()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						widget.View.Clear()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						fileData, err := widget.readFile()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							fmt.Fprintf(widget.View, "%s", err)
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							fmt.Fprintf(widget.View, "%s", fileData)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* -------------------- Uneported Functions -------------------- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (widget *Widget) readFile() (string, error) {
 | 
				
			||||||
 | 
						absPath, _ := homedir.Expand(widget.FilePath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bytes, err := ioutil.ReadFile(absPath)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return "", err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return string(bytes), nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										3
									
								
								wtf.go
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								wtf.go
									
									
									
									
									
								
							@ -15,6 +15,7 @@ import (
 | 
				
			|||||||
	"github.com/senorprogrammer/wtf/opsgenie"
 | 
						"github.com/senorprogrammer/wtf/opsgenie"
 | 
				
			||||||
	"github.com/senorprogrammer/wtf/security"
 | 
						"github.com/senorprogrammer/wtf/security"
 | 
				
			||||||
	"github.com/senorprogrammer/wtf/status"
 | 
						"github.com/senorprogrammer/wtf/status"
 | 
				
			||||||
 | 
						"github.com/senorprogrammer/wtf/textfile"
 | 
				
			||||||
	"github.com/senorprogrammer/wtf/weather"
 | 
						"github.com/senorprogrammer/wtf/weather"
 | 
				
			||||||
	"github.com/senorprogrammer/wtf/wtf"
 | 
						"github.com/senorprogrammer/wtf/wtf"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
@ -98,6 +99,7 @@ func main() {
 | 
				
			|||||||
	opsgenie.Config = Config
 | 
						opsgenie.Config = Config
 | 
				
			||||||
	security.Config = Config
 | 
						security.Config = Config
 | 
				
			||||||
	status.Config = Config
 | 
						status.Config = Config
 | 
				
			||||||
 | 
						textfile.Config = Config
 | 
				
			||||||
	weather.Config = Config
 | 
						weather.Config = Config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Modules = []wtf.TextViewer{
 | 
						Modules = []wtf.TextViewer{
 | 
				
			||||||
@ -110,6 +112,7 @@ func main() {
 | 
				
			|||||||
		opsgenie.NewWidget(),
 | 
							opsgenie.NewWidget(),
 | 
				
			||||||
		security.NewWidget(),
 | 
							security.NewWidget(),
 | 
				
			||||||
		status.NewWidget(),
 | 
							status.NewWidget(),
 | 
				
			||||||
 | 
							textfile.NewWidget(),
 | 
				
			||||||
		weather.NewWidget(),
 | 
							weather.NewWidget(),
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -23,9 +23,9 @@ func CreateConfigDir() bool {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// LoadConfigFile loads the config.yml file to configure the app
 | 
					// LoadConfigFile loads the config.yml file to configure the app
 | 
				
			||||||
func LoadConfigFile() *config.Config {
 | 
					func LoadConfigFile() *config.Config {
 | 
				
			||||||
	configPath, _ := homedir.Expand("~/.wtf/config.yml")
 | 
						absPath, _ := homedir.Expand("~/.wtf/config.yml")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	cfg, err := config.ParseYamlFile(configPath)
 | 
						cfg, err := config.ParseYamlFile(absPath)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		fmt.Println("\n\n\033[1m ERROR:\033[0m Could not load '\033[0;33mconfig.yml\033[0m'.\n Please add a \033[0;33mconfig.yml\033[0m file to your \033[0;33m~/.wtf\033[0m directory.\n See \033[1;34mhttps://github.com/senorprogrammer/wtf\033[0m for details.\n\n")
 | 
							fmt.Println("\n\n\033[1m ERROR:\033[0m Could not load '\033[0;33mconfig.yml\033[0m'.\n Please add a \033[0;33mconfig.yml\033[0m file to your \033[0;33m~/.wtf\033[0m directory.\n See \033[1;34mhttps://github.com/senorprogrammer/wtf\033[0m for details.\n\n")
 | 
				
			||||||
		os.Exit(1)
 | 
							os.Exit(1)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user