Skip to content

Commit

Permalink
Merge pull request #10 from furan917/main
Browse files Browse the repository at this point in the history
Upstream v0.1.13 alignment
  • Loading branch information
furan917 authored Mar 19, 2024
2 parents 73c5ac9 + c5fe337 commit 107971a
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 20 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog

## [0.1.13](https://github.com/furan917/MageComm/compare/v0.1.12...v0.1.13) (2024-03-19)


### Bug Fixes

* Ensure logrus always has the right logfile before logging ([ba34b51](https://github.com/furan917/MageComm/commit/ba34b51a2266490cf20f9cd06812ee1426e42797))

## [0.1.12](https://github.com/furan917/MageComm/compare/v0.1.11...v0.1.12) (2023-11-27)


Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# MageComm CLI Tool

MageComm CLI is a command line tool for managing Magento applications. It provides a convenient way to execute restricted magerun commands, manage deployments, and cat specific files within an archive.
The main use case for this tool is to provide a way to execute magerun commands in a controlled manner via a messaging service. This allows us to execute commands on a remote server without exposing the application server itself
MageComm CLI is a command line tool for managing Magento applications. It provides a convenient way to execute restricted magerun commands, and cat specific files within an archive.
The main use case for this tool is to provide a way to execute magerun commands in a controlled manner via a messaging service. This allows us to execute commands on a remote server without exposing the application server.

*It is important to note that the environment configuration/env is important to set if you plan to use this tool in a shared rmq/sqs instance as this will prefix your queues to avoid cross communication*

Expand Down Expand Up @@ -139,9 +139,9 @@ example config.json:
e.g
`magecomm --debug listen`
`magecomm --debug magerun cache:clean`
`magecomm --debug cat path/to/archive.tar.gz /path/to/file.txt`
`magecomm --config=/custom/config/path.json magerun indexer:status`
`magecomm --config=/custom/config/path.json --debug magerun indexer:reindex`
`magecomm --debug cat path/to/archive.tar.gz /path/to/file.txt`
`magecomm --config=/custom/config/path.json magerun indexer:status`
`magecomm --config=/custom/config/path.json --debug magerun indexer:reindex`

### Commands

Expand Down
80 changes: 66 additions & 14 deletions logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const (

var (
Log *logrus.Logger
LogFile string
debugFlagSet bool
)

Expand Down Expand Up @@ -56,6 +57,7 @@ func ConfigureLogPath(logFile string) {
FullTimestamp: true,
})
Log.SetOutput(file)
LogFile = logFile
Log.Infof("Logging to file: %s", file.Name())
}

Expand Down Expand Up @@ -93,58 +95,108 @@ func SetLogLevel(level string) {
Log.Infof("Log level set to %s", logrusLevel)
}

// Reapply log filepath to logrus logger to avoid log rotation issues
// Truthfully I cant be bothered making windows & unix compatible file descriptor checks as Log.Out is not updated, so this is will do for now
func logRotateHandler() {
if LogFile == "" {
return
}
file, _ := os.OpenFile(LogFile, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0755)
Log.SetOutput(file)
}

func logWithLevel(level logrus.Level, args ...interface{}) {
logRotateHandler()
switch level {
case TraceLevel:
Log.Trace(args...)
case DebugLevel:
Log.Debug(args...)
case InfoLevel:
Log.Info(args...)
case WarnLevel:
Log.Warn(args...)
case ErrorLevel:
Log.Error(args...)
case FatalLevel:
Log.Fatal(args...)
case PanicLevel:
Log.Panic(args...)
}
}

func logFormattedWithLevel(level logrus.Level, format string, args ...interface{}) {
logRotateHandler()
switch level {
case TraceLevel:
Log.Tracef(format, args...)
case DebugLevel:
Log.Debugf(format, args...)
case InfoLevel:
Log.Infof(format, args...)
case WarnLevel:
Log.Warnf(format, args...)
case ErrorLevel:
Log.Errorf(format, args...)
case FatalLevel:
Log.Fatalf(format, args...)
case PanicLevel:
Log.Panicf(format, args...)
}
}

func Trace(args ...interface{}) {
Log.Trace(args...)
logWithLevel(TraceLevel, args...)
}

func Debug(args ...interface{}) {
Log.Debug(args...)
logWithLevel(DebugLevel, args...)
}

func Info(args ...interface{}) {
Log.Info(args...)
logWithLevel(InfoLevel, args...)
}

func Warn(args ...interface{}) {
Log.Warn(args...)
logWithLevel(WarnLevel, args...)
}

func Error(args ...interface{}) {
Log.Error(args...)
logWithLevel(ErrorLevel, args...)
}

func Fatal(args ...interface{}) {
Log.Fatal(args...)
logWithLevel(FatalLevel, args...)
}

func Panic(args ...interface{}) {
Log.Panic(args...)
logWithLevel(PanicLevel, args...)
}

func Tracef(format string, args ...interface{}) {
Log.Tracef(format, args...)
logFormattedWithLevel(TraceLevel, format, args...)
}

func Debugf(format string, args ...interface{}) {
Log.Debugf(format, args...)
logFormattedWithLevel(DebugLevel, format, args...)
}

func Infof(format string, args ...interface{}) {
Log.Infof(format, args...)
logFormattedWithLevel(InfoLevel, format, args...)
}

func Warnf(format string, args ...interface{}) {
Log.Warnf(format, args...)
logFormattedWithLevel(WarnLevel, format, args...)
}

func Errorf(format string, args ...interface{}) {
Log.Errorf(format, args...)
logFormattedWithLevel(ErrorLevel, format, args...)
}

func Fatalf(format string, args ...interface{}) {
Log.Fatalf(format, args...)
logFormattedWithLevel(FatalLevel, format, args...)
}

func Panicf(format string, args ...interface{}) {
Log.Panicf(format, args...)
logFormattedWithLevel(PanicLevel, format, args...)
}
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v0.1.12 ## x-release-please-version
v0.1.13 ## x-release-please-version

0 comments on commit 107971a

Please sign in to comment.