diff --git a/CHANGELOG.md b/CHANGELOG.md index 37651dc..b49bb47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed * Updated bulma to v 0.7.5. +* Moved from `io/ioutil` to `os` package for reading/writing files and directories. ### Fixed diff --git a/assets/assets.go b/assets/assets.go index 9dd625a..1c1ea54 100644 --- a/assets/assets.go +++ b/assets/assets.go @@ -1,3 +1,4 @@ +//nolint:gofmt,gofumpt,goimports package assets import "embed" diff --git a/domains/dbnotavailable/dbnotavailable.go b/domains/dbnotavailable/dbnotavailable.go index 4d353ee..a3a1dcb 100644 --- a/domains/dbnotavailable/dbnotavailable.go +++ b/domains/dbnotavailable/dbnotavailable.go @@ -35,11 +35,11 @@ import ( func dbNotAvailableGet(ec echo.Context) error { htmlData := templater.GetTemplate(ec, "database_not_available.html", nil) - // nolint:wrapcheck + //nolint:wrapcheck return ec.HTML(http.StatusInternalServerError, htmlData) } func dbNotAvailableRawGet(ec echo.Context) error { - // nolint:wrapcheck + //nolint:wrapcheck return ec.String(http.StatusInternalServerError, "Database not available\nSomething went wrong while trying to connect to database. Check logs for details.") } diff --git a/domains/indexpage/indexpage.go b/domains/indexpage/indexpage.go index cf0ddd3..52ebf71 100644 --- a/domains/indexpage/indexpage.go +++ b/domains/indexpage/indexpage.go @@ -39,7 +39,7 @@ func indexGet(ectx echo.Context) error { // We should check if database connection available. dbConn := ctx.Database.GetDatabaseConnection() if ctx.Config.Database.Type != flatfiles.FlatFileDialect && dbConn == nil { - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusFound, "/database_not_available") } @@ -56,6 +56,6 @@ func indexGet(ectx echo.Context) error { htmlData := templater.GetTemplate(ectx, "index.html", map[string]string{"lexers": availableLexersSelectOpts, "captchaString": captchaString}) - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusOK, htmlData) } diff --git a/domains/pastes/paste_get.go b/domains/pastes/paste_get.go index e2cc757..d10baa1 100644 --- a/domains/pastes/paste_get.go +++ b/domains/pastes/paste_get.go @@ -92,7 +92,7 @@ func pasteGETWebInterface(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Paste #"+pasteIDStr+" not found") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -114,7 +114,7 @@ func pasteGETWebInterface(ectx echo.Context) error { if err == pasteExpired || err == pasteNotFound || err == pasteTimestampInvalid { errtpl := templater.GetErrorTemplate(ectx, "Paste #"+pasteIDRaw+" not found") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusNotFound, errtpl) } @@ -123,7 +123,7 @@ func pasteGETWebInterface(ectx echo.Context) error { if err == pasteCookieInvalid { ctx.Logger.Info().Int("paste ID", pasteID).Msg("Invalid cookie, redirecting to auth page") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusMovedPermanently, "/paste/"+pasteIDStr+"/"+ectx.Param("timestamp")+"/verify") } @@ -181,7 +181,7 @@ func pasteGETWebInterface(ectx echo.Context) error { // Get template and format it. pasteHTML := templater.GetTemplate(ectx, "paste.html", pasteData) - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusOK, pasteHTML) } @@ -200,7 +200,7 @@ func pastePasswordedVerifyGet(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Paste #"+pasteIDRaw+" not found") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -216,7 +216,7 @@ func pastePasswordedVerifyGet(ectx echo.Context) error { if cookieValue == cookie.Value { ctx.Logger.Info().Msg("Valid cookie, redirecting to paste page...") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusMovedPermanently, "/paste/"+pasteIDRaw+"/"+ectx.Param("timestamp")) } @@ -230,7 +230,7 @@ func pastePasswordedVerifyGet(ectx echo.Context) error { verifyHTML := templater.GetTemplate(ectx, "passworded_paste_verify.html", htmlData) - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusOK, verifyHTML) } @@ -240,7 +240,7 @@ func pastePasswordedVerifyPost(ectx echo.Context) error { dbConn := ctx.Database.GetDatabaseConnection() if ctx.Config.Database.Type != flatfiles.FlatFileDialect && dbConn == nil { - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusFound, "/database_not_available") } @@ -257,7 +257,7 @@ func pastePasswordedVerifyPost(ectx echo.Context) error { ctx.Logger.Error().Err(err1).Int("paste ID", pasteID).Msg("Failed to get paste") errtpl := templater.GetErrorTemplate(ectx, "Paste #"+strconv.Itoa(pasteID)+" not found") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -267,7 +267,7 @@ func pastePasswordedVerifyPost(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Paste #"+strconv.Itoa(pasteID)+" not found") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -280,13 +280,13 @@ func pastePasswordedVerifyPost(ectx echo.Context) error { cookie.Expires = time.Now().Add(24 * time.Hour) ectx.SetCookie(cookie) - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusFound, "/paste/"+strconv.Itoa(pasteID)+"/"+timestampRaw) } errtpl := templater.GetErrorTemplate(ectx, "Invalid password. Please, try again.") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -296,7 +296,7 @@ func pasteRawGETWebInterface(ectx echo.Context) error { // We should check if database connection available. dbConn := ctx.Database.GetDatabaseConnection() if ctx.Config.Database.Type != flatfiles.FlatFileDialect && dbConn == nil { - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusFound, "/database_not_available/raw") } @@ -311,14 +311,14 @@ func pasteRawGETWebInterface(ectx echo.Context) error { if err1 != nil { ctx.Logger.Error().Err(err1).Int("paste ID", pasteID).Msg("Failed to get paste from database") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, "Paste #"+pasteIDRaw+" does not exist.") } if paste.IsExpired() { ctx.Logger.Error().Int("paste ID", pasteID).Msg("Paste is expired") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, "Paste #"+pasteIDRaw+" does not exist.") } @@ -330,7 +330,7 @@ func pasteRawGETWebInterface(ectx echo.Context) error { if err2 != nil { ctx.Logger.Error().Err(err2).Int("paste ID", pasteID).Str("provided timestamp", tsProvidedStr).Msg("Invalid timestamp provided for getting private paste") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.String(http.StatusBadRequest, "Paste #"+pasteIDRaw+" not found") } @@ -338,12 +338,12 @@ func pasteRawGETWebInterface(ectx echo.Context) error { if tsProvided != pasteTS { ctx.Logger.Error().Int("paste ID", pasteID).Int64("provided timestamp", tsProvided).Int64("paste timestamp", pasteTS).Msg("Incorrect timestamp provided for private paste") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.String(http.StatusBadRequest, "Paste #"+pasteIDRaw+" not found") } } - // nolint + //nolint // ToDo: figure out how to handle passworded pastes here. // Return error for now. if paste.Password != "" { @@ -351,6 +351,6 @@ func pasteRawGETWebInterface(ectx echo.Context) error { return ectx.String(http.StatusBadRequest, "Paste #"+pasteIDRaw+" not found") } - // nolint:wrapcheck + //nolint:wrapcheck return ectx.String(http.StatusOK, paste.Data) } diff --git a/domains/pastes/paste_post.go b/domains/pastes/paste_post.go index 6ff4820..2693e6b 100644 --- a/domains/pastes/paste_post.go +++ b/domains/pastes/paste_post.go @@ -24,7 +24,7 @@ func pastePOSTWebInterface(ectx echo.Context) error { // We should check if database connection available. dbConn := ctx.Database.GetDatabaseConnection() if ctx.Config.Database.Type != flatfiles.FlatFileDialect && dbConn == nil { - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusFound, "/database_not_available") } @@ -34,7 +34,7 @@ func pastePOSTWebInterface(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Cannot create empty paste") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -46,7 +46,7 @@ func pastePOSTWebInterface(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Empty pastes aren't allowed.") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -55,7 +55,7 @@ func pastePOSTWebInterface(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Invalid 'Paste should be available for' parameter passed. Please do not try to hack us ;).") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -65,11 +65,11 @@ func pastePOSTWebInterface(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Invalid captcha solution.") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } - // nolint:exhaustruct + //nolint:exhaustruct paste := &structs.Paste{ Title: params["paste-title"][0], Data: params["paste-contents"][0], @@ -103,7 +103,7 @@ func pastePOSTWebInterface(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Invalid 'Paste should be available for' parameter passed. Please do not try to hack us ;).") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } } @@ -144,7 +144,7 @@ func pastePOSTWebInterface(ectx echo.Context) error { errtpl := templater.GetErrorTemplate(ectx, "Failed to save paste. Please, try again later.") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusBadRequest, errtpl) } @@ -153,10 +153,10 @@ func pastePOSTWebInterface(ectx echo.Context) error { // Private pastes have it's timestamp in URL. if paste.Private { - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusFound, "/paste/"+newPasteIDAsString+"/"+strconv.FormatInt(paste.CreatedAt.Unix(), 10)) } - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusFound, "/paste/"+newPasteIDAsString) } diff --git a/domains/pastes/pastes_get.go b/domains/pastes/pastes_get.go index 06e18dc..6fd575c 100644 --- a/domains/pastes/pastes_get.go +++ b/domains/pastes/pastes_get.go @@ -41,7 +41,7 @@ func pastesGET(ectx echo.Context) error { // We should check if database connection available. dbConn := ctx.Database.GetDatabaseConnection() if ctx.Config.Database.Type != flatfiles.FlatFileDialect && dbConn == nil { - // nolint:wrapcheck + //nolint:wrapcheck return ectx.Redirect(http.StatusFound, "/database_not_available") } @@ -68,7 +68,7 @@ func pastesGET(ectx echo.Context) error { noPastesToShowTpl := templater.GetErrorTemplate(ectx, "No pastes to show.") - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusOK, noPastesToShowTpl) } @@ -106,6 +106,6 @@ func pastesGET(ectx echo.Context) error { pasteListTpl := templater.GetTemplate(ectx, "pastelist_list.html", map[string]string{"pastes": pastesString, "pagination": paginationHTML}) - // nolint:wrapcheck + //nolint:wrapcheck return ectx.HTML(http.StatusOK, pasteListTpl) } diff --git a/internal/context/context.go b/internal/context/context.go index 8ee19df..49eb68b 100644 --- a/internal/context/context.go +++ b/internal/context/context.go @@ -25,7 +25,6 @@ package context import ( - "io/ioutil" "os" "path/filepath" @@ -100,11 +99,11 @@ func (c *Context) LoadConfiguration() { c.Logger.Debug().Str("path", configPath).Msg("Configuration file path") - // nolint:exhaustruct + //nolint:exhaustruct c.Config = &config.Struct{} // Read configuration file. - fileData, err2 := ioutil.ReadFile(normalizedConfigPath) + fileData, err2 := os.ReadFile(normalizedConfigPath) if err2 != nil { c.Logger.Panic().Err(err2).Msg("Failed to read configuration file") } diff --git a/internal/context/exported.go b/internal/context/exported.go index 7f8e54e..9b8647b 100644 --- a/internal/context/exported.go +++ b/internal/context/exported.go @@ -31,6 +31,6 @@ const ( // New creates new context. func New() *Context { - // nolint:exhaustruct + //nolint:exhaustruct return &Context{} } diff --git a/internal/context/logger.go b/internal/context/logger.go index c04f485..e0266e6 100644 --- a/internal/context/logger.go +++ b/internal/context/logger.go @@ -24,7 +24,7 @@ func (c *Context) getMemoryUsage(event *zerolog.Event, level zerolog.Level, mess // Initializes logger. func (c *Context) initializeLogger() { // Устанавливаем форматирование логгера. - // nolint:exhaustruct + //nolint:exhaustruct output := zerolog.ConsoleWriter{Out: os.Stdout, NoColor: false, TimeFormat: time.RFC3339} output.FormatLevel = func(lvlRaw interface{}) string { var lvl string diff --git a/internal/database/database.go b/internal/database/database.go index 631a680..2ef484b 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -79,7 +79,7 @@ func (db *Database) cleanup() { } func (db *Database) DeletePaste(pasteID int) error { - // nolint:wrapcheck + //nolint:wrapcheck return db.db.DeletePaste(pasteID) } @@ -92,12 +92,12 @@ func (db *Database) GetDatabaseConnection() *sql.DB { } func (db *Database) GetPaste(pasteID int) (*structs.Paste, error) { - // nolint:wrapcheck + //nolint:wrapcheck return db.db.GetPaste(pasteID) } func (db *Database) GetPagedPastes(page int) ([]structs.Paste, error) { - // nolint:wrapcheck + //nolint:wrapcheck return db.db.GetPagedPastes(page) } @@ -128,7 +128,7 @@ func (db *Database) RegisterDialect(di dialectinterface.Interface) { } func (db *Database) SavePaste(p *structs.Paste) (int64, error) { - // nolint:wrapcheck + //nolint:wrapcheck return db.db.SavePaste(p) } diff --git a/internal/database/dialects/flatfiles/exported.go b/internal/database/dialects/flatfiles/exported.go index 17e6fc3..c4fa9d8 100644 --- a/internal/database/dialects/flatfiles/exported.go +++ b/internal/database/dialects/flatfiles/exported.go @@ -38,7 +38,7 @@ var ( func New(cc *context.Context) { ctx = cc - // nolint:exhaustruct + //nolint:exhaustruct flf = &FlatFiles{} ctx.Database.RegisterDialect(dialectinterface.Interface(Handler{})) diff --git a/internal/database/dialects/flatfiles/flatfiles.go b/internal/database/dialects/flatfiles/flatfiles.go index a95d02b..93ab356 100644 --- a/internal/database/dialects/flatfiles/flatfiles.go +++ b/internal/database/dialects/flatfiles/flatfiles.go @@ -27,7 +27,6 @@ package flatfiles import ( "database/sql" "encoding/json" - "io/ioutil" "os" "os/user" "path/filepath" @@ -51,7 +50,7 @@ func (ff *FlatFiles) DeletePaste(pasteID int) error { if err != nil { ctx.Logger.Error().Err(err).Msg("Failed to delete paste!") - // nolint:wrapcheck + //nolint:wrapcheck return err } @@ -85,25 +84,25 @@ func (ff *FlatFiles) GetPaste(pasteID int) (*structs.Paste, error) { pastePath := filepath.Join(ff.path, "pastes", strconv.Itoa(pasteID)+".json") ctx.Logger.Debug().Str("path", pastePath).Msg("Trying to load paste data") - pasteInBytes, err := ioutil.ReadFile(pastePath) + pasteInBytes, err := os.ReadFile(pastePath) if err != nil { ctx.Logger.Debug().Err(err).Msg("Failed to read paste from storage") - // nolint:wrapcheck + //nolint:wrapcheck return nil, err } ctx.Logger.Debug().Int("paste bytes", len(pasteInBytes)).Msg("Loaded paste") ff.writeMutex.Unlock() - // nolint:exhaustruct + //nolint:exhaustruct paste := &structs.Paste{} err1 := json.Unmarshal(pasteInBytes, paste) if err1 != nil { ctx.Logger.Error().Err(err1).Msgf("Failed to parse paste") - // nolint:wrapcheck + //nolint:wrapcheck return nil, err1 } @@ -149,10 +148,10 @@ func (ff *FlatFiles) GetPagedPastes(page int) ([]structs.Paste, error) { ctx.Logger.Debug().Int("ID", paste.ID).Int("index", idx).Msg("Getting paste data") // Get paste data. - // nolint:exhaustruct + //nolint:exhaustruct pasteData := &structs.Paste{} - pasteRawData, err := ioutil.ReadFile(filepath.Join(ff.path, "pastes", strconv.Itoa(paste.ID)+".json")) + pasteRawData, err := os.ReadFile(filepath.Join(ff.path, "pastes", strconv.Itoa(paste.ID)+".json")) if err != nil { ctx.Logger.Error().Err(err).Msg("Failed to read paste data") @@ -236,7 +235,7 @@ func (ff *FlatFiles) Initialize() { if _, err := os.Stat(filepath.Join(ff.path, "pastes", "index.json")); err != nil { ctx.Logger.Warn().Msg("Pastes index file does not exist, will create new one") } else { - indexData, err := ioutil.ReadFile(filepath.Join(ff.path, "pastes", "index.json")) + indexData, err := os.ReadFile(filepath.Join(ff.path, "pastes", "index.json")) if err != nil { ctx.Logger.Fatal().Msg("Failed to read contents of index file!") } @@ -253,7 +252,7 @@ func (ff *FlatFiles) Initialize() { func (ff *FlatFiles) SavePaste(paste *structs.Paste) (int64, error) { ff.writeMutex.Lock() // Write paste data on disk. - filesOnDisk, _ := ioutil.ReadDir(filepath.Join(ff.path, "pastes")) + filesOnDisk, _ := os.ReadDir(filepath.Join(ff.path, "pastes")) pasteID := len(filesOnDisk) + 1 paste.ID = pasteID @@ -263,20 +262,20 @@ func (ff *FlatFiles) SavePaste(paste *structs.Paste) (int64, error) { if err != nil { ff.writeMutex.Unlock() - // nolint:wrapcheck + //nolint:wrapcheck return 0, err } - err = ioutil.WriteFile(filepath.Join(ff.path, "pastes", strconv.Itoa(pasteID)+".json"), data, 0o600) + err = os.WriteFile(filepath.Join(ff.path, "pastes", strconv.Itoa(pasteID)+".json"), data, 0o600) if err != nil { ff.writeMutex.Unlock() - // nolint:wrapcheck + //nolint:wrapcheck return 0, err } // Add it to cache. - // nolint:exhaustruct + //nolint:exhaustruct indexData := Index{} indexData.ID = pasteID indexData.Private = paste.Private @@ -296,7 +295,7 @@ func (ff *FlatFiles) Shutdown() { return } - err1 := ioutil.WriteFile(filepath.Join(ff.path, "pastes", "index.json"), indexData, 0o600) + err1 := os.WriteFile(filepath.Join(ff.path, "pastes", "index.json"), indexData, 0o600) if err1 != nil { ctx.Logger.Error().Err(err1).Msg("Failed to write index data to file. Pretty sure that you've lost your pastes.") diff --git a/internal/database/dialects/mysql/exported.go b/internal/database/dialects/mysql/exported.go index a939589..b00209d 100644 --- a/internal/database/dialects/mysql/exported.go +++ b/internal/database/dialects/mysql/exported.go @@ -36,7 +36,7 @@ var ( func New(cc *context.Context) { ctx = cc - // nolint:exhaustruct + //nolint:exhaustruct dbAdapter = &Database{} ctx.Database.RegisterDialect(dialectinterface.Interface(Handler{})) diff --git a/internal/database/dialects/mysql/migrations/1_initial.go b/internal/database/dialects/mysql/migrations/1_initial.go index 2821312..0c0e159 100644 --- a/internal/database/dialects/mysql/migrations/1_initial.go +++ b/internal/database/dialects/mysql/migrations/1_initial.go @@ -38,7 +38,7 @@ func InitialUp(tx *sql.Tx) error { keep_for_unit_type int(1) NOT NULL DEFAULT 1 COMMENT 'Keep for unit type. 1 - minutes, 2 - hours, 3 - days, 4 - months.', PRIMARY KEY (id), UNIQUE KEY id (id)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='Pastes';`) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } diff --git a/internal/database/dialects/mysql/migrations/2_paste_lang.go b/internal/database/dialects/mysql/migrations/2_paste_lang.go index 84a28a0..e1732bc 100644 --- a/internal/database/dialects/mysql/migrations/2_paste_lang.go +++ b/internal/database/dialects/mysql/migrations/2_paste_lang.go @@ -31,7 +31,7 @@ import ( func PasteLangUp(tx *sql.Tx) error { _, err := tx.Exec("ALTER TABLE `pastes` ADD `language` VARCHAR(191) NOT NULL DEFAULT 'text' COMMENT 'Paste language'") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } @@ -41,7 +41,7 @@ func PasteLangUp(tx *sql.Tx) error { func PasteLangDown(tx *sql.Tx) error { _, err := tx.Exec("ALTER TABLE `pastes` DROP COLUMN `language`") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } diff --git a/internal/database/dialects/mysql/migrations/3_private_pastes.go b/internal/database/dialects/mysql/migrations/3_private_pastes.go index 158bfb4..d81470a 100644 --- a/internal/database/dialects/mysql/migrations/3_private_pastes.go +++ b/internal/database/dialects/mysql/migrations/3_private_pastes.go @@ -31,7 +31,7 @@ import ( func PrivatePastesUp(tx *sql.Tx) error { _, err := tx.Exec("ALTER TABLE `pastes` ADD `private` BOOL NOT NULL DEFAULT false COMMENT 'Private paste? If true - additional URL parameter (UNIX TIMESTAMP) of paste will be required to access.'") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } @@ -41,7 +41,7 @@ func PrivatePastesUp(tx *sql.Tx) error { func PrivatePastesDown(tx *sql.Tx) error { _, err := tx.Exec("ALTER TABLE `pastes` DROP COLUMN `private`") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } diff --git a/internal/database/dialects/mysql/migrations/4_passworded_pastes.go b/internal/database/dialects/mysql/migrations/4_passworded_pastes.go index 38d145c..70c12c8 100644 --- a/internal/database/dialects/mysql/migrations/4_passworded_pastes.go +++ b/internal/database/dialects/mysql/migrations/4_passworded_pastes.go @@ -31,13 +31,13 @@ import ( func PasswordedPastesUp(txn *sql.Tx) error { _, err := txn.Exec("ALTER TABLE `pastes` ADD `password` varchar(64) NOT NULL DEFAULT '' COMMENT 'Password for paste (scrypted and sha256ed).'") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } _, err1 := txn.Exec("ALTER TABLE `pastes` ADD `password_salt` varchar(64) NOT NULL DEFAULT '' COMMENT 'Password salt (sha256ed).'") if err1 != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err1 } @@ -47,13 +47,13 @@ func PasswordedPastesUp(txn *sql.Tx) error { func PasswordedPastesDown(txn *sql.Tx) error { _, err := txn.Exec("ALTER TABLE `pastes` DROP COLUMN `password`") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } _, err1 := txn.Exec("ALTER TABLE `pastes` DROP COLUMN `password_salt`") if err1 != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err1 } diff --git a/internal/database/dialects/mysql/mysqldatabase.go b/internal/database/dialects/mysql/mysqldatabase.go index 4deb054..1be432f 100644 --- a/internal/database/dialects/mysql/mysqldatabase.go +++ b/internal/database/dialects/mysql/mysqldatabase.go @@ -59,7 +59,7 @@ func (db *Database) DeletePaste(pasteID int) error { _, err := db.db.Exec(db.db.Rebind("DELETE FROM pastes WHERE id=?"), pasteID) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } @@ -80,12 +80,12 @@ func (db *Database) GetDatabaseConnection() *sql.DB { func (db *Database) GetPaste(pasteID int) (*structs.Paste, error) { db.check() - // nolint:exhaustruct + //nolint:exhaustruct paste := &structs.Paste{} err := db.db.Get(paste, db.db.Rebind("SELECT * FROM `pastes` WHERE id=?"), pasteID) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return nil, err } @@ -108,7 +108,7 @@ func (db *Database) GetPagedPastes(page int) ([]structs.Paste, error) { err := db.db.Select(&pastesRaw, db.db.Rebind("SELECT * FROM `pastes` WHERE private != true ORDER BY id DESC LIMIT ? OFFSET ?"), ctx.Config.Pastes.Pagination, startPagination) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return nil, err } @@ -191,13 +191,13 @@ func (db *Database) SavePaste(p *structs.Paste) (int64, error) { result, err := db.db.NamedExec("INSERT INTO `pastes` (title, data, created_at, keep_for, keep_for_unit_type, language, private, password, password_salt) VALUES (:title, :data, :created_at, :keep_for, :keep_for_unit_type, :language, :private, :password, :password_salt)", p) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return 0, err } lastInsertID, err1 := result.LastInsertId() if err1 != nil { - // nolint:wrapcheck + //nolint:wrapcheck return 0, err } diff --git a/internal/database/dialects/postgresql/exported.go b/internal/database/dialects/postgresql/exported.go index 80b74b1..f84d089 100644 --- a/internal/database/dialects/postgresql/exported.go +++ b/internal/database/dialects/postgresql/exported.go @@ -36,7 +36,7 @@ var ( func New(cc *context.Context) { ctx = cc - // nolint:exhaustruct + //nolint:exhaustruct dbAdapter = &Database{} ctx.Database.RegisterDialect(dialectinterface.Interface(Handler{})) diff --git a/internal/database/dialects/postgresql/migrations/1_initial.go b/internal/database/dialects/postgresql/migrations/1_initial.go index 5483318..1a69ce4 100644 --- a/internal/database/dialects/postgresql/migrations/1_initial.go +++ b/internal/database/dialects/postgresql/migrations/1_initial.go @@ -48,7 +48,7 @@ func InitialUp(tx *sql.Tx) error { COMMENT ON COLUMN pastes.keep_for_unit_type IS 'Keep for unit type. 0 - forever, 1 - minutes, 2 - hours, 3 - days, 4 - months.'; `) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } diff --git a/internal/database/dialects/postgresql/migrations/2_paste_lang.go b/internal/database/dialects/postgresql/migrations/2_paste_lang.go index e041fd4..d259c6c 100644 --- a/internal/database/dialects/postgresql/migrations/2_paste_lang.go +++ b/internal/database/dialects/postgresql/migrations/2_paste_lang.go @@ -31,7 +31,7 @@ import ( func PasteLangUp(tx *sql.Tx) error { _, err := tx.Exec("ALTER TABLE pastes ADD COLUMN language VARCHAR(191) NOT NULL DEFAULT 'text'; COMMENT ON COLUMN pastes.language IS 'Paste language';") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } @@ -41,7 +41,7 @@ func PasteLangUp(tx *sql.Tx) error { func PasteLangDown(tx *sql.Tx) error { _, err := tx.Exec("ALTER TABLE pastes DROP COLUMN language") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } diff --git a/internal/database/dialects/postgresql/migrations/3_private_pastes.go b/internal/database/dialects/postgresql/migrations/3_private_pastes.go index 66add4b..6730d0f 100644 --- a/internal/database/dialects/postgresql/migrations/3_private_pastes.go +++ b/internal/database/dialects/postgresql/migrations/3_private_pastes.go @@ -31,7 +31,7 @@ import ( func PrivatePastesUp(tx *sql.Tx) error { _, err := tx.Exec("ALTER TABLE pastes ADD COLUMN private BOOLEAN NOT NULL DEFAULT false; COMMENT ON COLUMN pastes.private IS 'Private paste? If true - additional URL parameter (UNIX TIMESTAMP) of paste will be required to access.';") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } @@ -41,7 +41,7 @@ func PrivatePastesUp(tx *sql.Tx) error { func PrivatePastesDown(tx *sql.Tx) error { _, err := tx.Exec("ALTER TABLE pastes DROP COLUMN private") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } diff --git a/internal/database/dialects/postgresql/migrations/4_passworded_pastes.go b/internal/database/dialects/postgresql/migrations/4_passworded_pastes.go index 6aca4cf..05eafef 100644 --- a/internal/database/dialects/postgresql/migrations/4_passworded_pastes.go +++ b/internal/database/dialects/postgresql/migrations/4_passworded_pastes.go @@ -31,13 +31,13 @@ import ( func PasswordedPastesUp(txn *sql.Tx) error { _, err := txn.Exec("ALTER TABLE pastes ADD COLUMN password VARCHAR(64) NOT NULL DEFAULT ''; COMMENT ON COLUMN pastes.password IS 'Password for paste (scrypted and sha256ed).';") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } _, err1 := txn.Exec("ALTER TABLE pastes ADD COLUMN password_salt VARCHAR(64) NOT NULL DEFAULT ''; COMMENT ON COLUMN pastes.password_salt IS 'Password salt (sha256ed).';") if err1 != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err1 } @@ -47,13 +47,13 @@ func PasswordedPastesUp(txn *sql.Tx) error { func PasswordedPastesDown(txn *sql.Tx) error { _, err := txn.Exec("ALTER TABLE pastes DROP COLUMN password") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } _, err1 := txn.Exec("ALTER TABLE pastes DROP COLUMN password_salt") if err1 != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err1 } diff --git a/internal/database/dialects/postgresql/postgresqldatabase.go b/internal/database/dialects/postgresql/postgresqldatabase.go index f363647..8124f5b 100644 --- a/internal/database/dialects/postgresql/postgresqldatabase.go +++ b/internal/database/dialects/postgresql/postgresqldatabase.go @@ -24,7 +24,7 @@ package postgresql -// nolint:gci +//nolint:gci import ( "database/sql" "fmt" @@ -63,7 +63,7 @@ func (db *Database) DeletePaste(pasteID int) error { _, err := db.db.Exec(db.db.Rebind("DELETE FROM pastes WHERE id=?"), pasteID) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err } @@ -84,12 +84,12 @@ func (db *Database) GetDatabaseConnection() *sql.DB { func (db *Database) GetPaste(pasteID int) (*structs.Paste, error) { db.check() - // nolint:exhaustruct + //nolint:exhaustruct paste := &structs.Paste{} err := db.db.Get(paste, db.db.Rebind("SELECT * FROM pastes WHERE id=$1"), pasteID) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return nil, err } @@ -119,7 +119,7 @@ func (db *Database) GetPagedPastes(page int) ([]structs.Paste, error) { err := db.db.Select(&pastesRaw, db.db.Rebind("SELECT * FROM pastes WHERE private != true ORDER BY id DESC LIMIT $1 OFFSET $2"), ctx.Config.Pastes.Pagination, startPagination) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return nil, err } @@ -203,7 +203,7 @@ func (db *Database) SavePaste(paste *structs.Paste) (int64, error) { stmt, err := db.db.PrepareNamed("INSERT INTO pastes (title, data, created_at, keep_for, keep_for_unit_type, language, private, password, password_salt) VALUES (:title, :data, :created_at, :keep_for, :keep_for_unit_type, :language, :private, :password, :password_salt) RETURNING id") if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return 0, err } @@ -211,7 +211,7 @@ func (db *Database) SavePaste(paste *structs.Paste) (int64, error) { err = stmt.Get(&newPasteID, paste) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return 0, err } diff --git a/internal/database/exported.go b/internal/database/exported.go index 7b861d9..3ed3192 100644 --- a/internal/database/exported.go +++ b/internal/database/exported.go @@ -37,7 +37,7 @@ var ( // New initializes database structure. func New(cc *context.Context) { ctx = cc - // nolint:exhaustruct + //nolint:exhaustruct dbAdapter = &Database{} ctx.RegisterDatabaseInterface(databaseinterface.Interface(Handler{})) diff --git a/internal/pagination/exported.go b/internal/pagination/exported.go index b6445e6..31d2281 100644 --- a/internal/pagination/exported.go +++ b/internal/pagination/exported.go @@ -42,13 +42,13 @@ func CreateHTML(currentPage int, pages int, linksBase string) string { var ( ellipsisStartAdded = false ellipsisEndAdded = false - // nolint:varnamelen + //nolint:varnamelen i = 2 ) for i <= pages { // ToDo: fix it! - // nolint:nestif + //nolint:nestif if pages > 5 { if currentPage-3 < i && currentPage+3 > i || i == pages { paginationItemRaw := string(paginationLinkRaw) diff --git a/internal/structs/paste.go b/internal/structs/paste.go index 7e0a47d..62893ca 100644 --- a/internal/structs/paste.go +++ b/internal/structs/paste.go @@ -76,7 +76,7 @@ type Paste struct { func (p *Paste) CreatePassword(password string) error { // Create salt - random string. // Yes, it is insecure. Should be refactored! - // nolint:gosec + //nolint:gosec seededRand := rand.New(rand.NewSource(time.Now().UnixNano())) saltBytes := make([]byte, 64) @@ -90,7 +90,7 @@ func (p *Paste) CreatePassword(password string) error { // Create crypted password and hash it. passwordCrypted, err := scrypt.Key([]byte(password), []byte(p.PasswordSalt), 131072, 8, 1, 64) if err != nil { - // nolint:wrapcheck + //nolint:wrapcheck return err }