diff --git a/cmd/clean.go b/cmd/clean.go index 8e03d34..28dcf7c 100644 --- a/cmd/clean.go +++ b/cmd/clean.go @@ -109,7 +109,7 @@ It calls metaflac to clean the FLAC files.`, } if !rootCmdArgs.DryRun { - err := utils.Clean( + var output, err = utils.Clean( rootCmdArgs.MetaflacCommandPath, cleanCmdArgs.CleanArguments, flacFile, @@ -124,6 +124,10 @@ It calls metaflac to clean the FLAC files.`, flacFile, resultCode, ) + + if rootCmdArgs.Verbose { + log.Fatalln(output) + } } os.Exit(1) @@ -163,10 +167,13 @@ func init() { "ALBUMARTIST", "ARTIST", "COMMENT", + "COMPOSER", "DISCNUMBER", "FLAC_ARGUMENTS", "GENRE", + "LYRICS", "METAFLAC_ARGUMENTS", + "PERFORMER", "REPLAYGAIN_REFERENCE_LOUDNESS", "REPLAYGAIN_ALBUM_GAIN", "REPLAYGAIN_ALBUM_PEAK", diff --git a/cmd/encode.go b/cmd/encode.go index 8dcab24..302bbd9 100644 --- a/cmd/encode.go +++ b/cmd/encode.go @@ -125,12 +125,36 @@ It calls flac to encode the FLAC files.`, } if needToEncode || rootCmdArgs.Force { + encodeCmdArgs.EncodeArguments = append( + encodeCmdArgs.EncodeArguments, + "--force", + "--silent", + ) + if !rootCmdArgs.DryRun { - utils.Encode( + var output, err = utils.Encode( rootCmdArgs.FlacCommandPath, encodeCmdArgs.EncodeArguments, flacFile, ) + + if err != nil { + if exitError, ok := err.(*exec.ExitError); ok { + resultCode := exitError.ExitCode() + + log.Fatalf( + "ERROR - cannot encode file \"%s\" (exit code %d)", + flacFile, + resultCode, + ) + + if rootCmdArgs.Verbose { + log.Fatalln(output) + } + } + + os.Exit(1) + } } if rootCmdArgs.Verbose { @@ -173,10 +197,9 @@ func init() { "a", []string{ "--compression-level-8", - "--delete-input-file", - "--force", + "--exhaustive-model-search", "--no-padding", - "--silent", + "--qlp-coeff-precision-search", "--verify", "--warnings-as-errors", }, diff --git a/cmd/normalize.go b/cmd/normalize.go index 9294478..fedfbf9 100644 --- a/cmd/normalize.go +++ b/cmd/normalize.go @@ -144,7 +144,7 @@ It calls metaflac to calculate and add the ReplayGain tags to the FLAC files.`, if needToNormalize || rootCmdArgs.Force { if !rootCmdArgs.DryRun { - err := utils.Normalize( + var output, err = utils.Normalize( rootCmdArgs.MetaflacCommandPath, normalizeCmdArgs.NormalizeArguments, flacFiles, @@ -159,6 +159,10 @@ It calls metaflac to calculate and add the ReplayGain tags to the FLAC files.`, flacFiles, resultCode, ) + + if rootCmdArgs.Verbose { + log.Fatalln(output) + } } os.Exit(1) diff --git a/cmd/verify.go b/cmd/verify.go index c7b8908..e77566c 100644 --- a/cmd/verify.go +++ b/cmd/verify.go @@ -62,7 +62,7 @@ It calls metaflac to verify the FLAC files.`, flacFile := args[0] if !rootCmdArgs.DryRun { - err := utils.Verify( + var output, err = utils.Verify( rootCmdArgs.FlacCommandPath, verifyCmdArgs.VerifyArguments, flacFile, @@ -77,6 +77,10 @@ It calls metaflac to verify the FLAC files.`, flacFile, resultCode, ) + + if rootCmdArgs.Verbose { + log.Fatalln(output) + } } os.Exit(1) diff --git a/config.yaml b/config.yaml index 3de8d82..07aac55 100644 --- a/config.yaml +++ b/config.yaml @@ -33,10 +33,13 @@ tags-to-keep: - "ALBUMARTIST" - "ARTIST" - "COMMENT" + - "COMPOSER" - "DISCNUMBER" - "FLAC_ARGUMENTS" - "GENRE" + - "LYRICS" - "METAFLAC_ARGUMENTS" + - "PERFORMER" - "REPLAYGAIN_REFERENCE_LOUDNESS" - "REPLAYGAIN_ALBUM_GAIN" - "REPLAYGAIN_ALBUM_PEAK" @@ -53,10 +56,9 @@ tags-to-keep: # Arguments passed to flac to encode the file encode-arguments: - "--compression-level-8" - - "--delete-input-file" - - "--force" + - "--exhaustive-model-search" - "--no-padding" - - "--silent" + - "--qlp-coeff-precision-search" - "--verify" - "--warnings-as-errors" diff --git a/docs/02_COMMANDS_AND_FLAGS.md b/docs/02_COMMANDS_AND_FLAGS.md index 46d1cd5..bcea3ba 100644 --- a/docs/02_COMMANDS_AND_FLAGS.md +++ b/docs/02_COMMANDS_AND_FLAGS.md @@ -1,7 +1,7 @@