Skip to content
Golang library for generating (mostly) unique date-sortable filenames
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
.gitignore
.travis.yml
LICENSE
README.md
fn.go
fn_test.go
go.mod
go.sum

README.md

fn

Build Status GoDoc Go Report Card

Golang library for generating (mostly) unique date-sortable filenames

Installation

Via go get:

go get github.com/bcongdon/fn

Via Go modules: Add the following to your go.mod file

github.com/bcongdon/fn v0.0.1

Usage

As per inconvergent's fn, the formatting of file names is as follows:

yyyymmdd-hhmmss-gitsha-procdatetimesha

The first 2 chunks are the current date (day and time), the 3rd chunk is the hash of the current git commit, and the 4th chunk is the hash of the current process ID and time.

Optionally, a prefix/postfix can be added to the names by setting the Prefix and Postfix fields of Fn, respectively.

fNamer := fn.New()

// Basic Name
fmt.Println(fNamer.Name())
// "200260220-072532-392d644-6193ecb1"

// Name w/ Prefix
fNamer.Prefix = "foo"
fmt.Println(fNamer.Name())
// "foo-200260220-072532-392d644-4dffcc5b"

// Name w/ Postfix
fNamer.Postfix = "bar"
fNamer.Prefix = ""
fmt.Println(fNamer.Name())
// "200260220-072532-392d644-c25334f9-bar"

// Name w/ file extension
fNamer.Postfix = ""
fmt.Println(fNamer.NameWithFileType("png"))
// "200260220-072532-392d644-a165c554.png"

A full example lives in the examples/ directory.

Attribution

This library is more-or-less a direct port of inconvergent's fn Python package.

You can’t perform that action at this time.