Skip to content

pombredanne/crate-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crate Build Status Stories in Ready

File archival and meta data synchronization tool (experimental)

Crate by Steve

About

This project is intended mostly to show off a complete Go project that I wrote myself (my other Go projects are closed source, unfortunately) as part of my larger profile. It should demonstrate a systems program that interacts with the file system, uses a database, and performs network traffic. It is also useful to me, since I'm using it to extract and backup all the images my family has to a cloud service.

I also wanted to have some record of what a good Go project looks like. It is routine for me to setup a quality Python library and deploy it on PyPi - but it's less clear about how to do that for Go. After researching other Go project libraries, this is what I came up with:

  • A main.go that interacted with a self-contained library and used CLI
  • A test suite that uses Ginkgo and Gomega
  • A Makefile that fetches dependencies and builds locally rather than on the $GOPATH

Together I hope this demonstrates to you and future me how to best set up a Go project, especially as I may be moving away from Go programming back to other languages at least in the immediate future.

Contributing

Crate is open source, and I would be happy to have you contribute! You can do so in the following ways:

  1. Create a Pull Request in Github: https://github.com/bbengfort/crate
  2. Add issues or bugs to the bug tracker: https://github.com/bbengfort/crate/issues
  3. Work on a card on the dev board: https://waffle.io/bbengfort/crate

You can connect with me on Twitter for other discussions: @bbengfort

Name Origin

crate
krāt
noun

  1. a slatted wooden case used for transporting or storing goods.

    "a crate of bananas"

  2. an old and dilapidated vehicle.

verb

  1. pack (something) in a crate for transportation.

Ok, so I'm a bit of a nerd - but I was thinking about other projects like Box, Dropbox, S3, etc. Crate seemed like an appropriate name. Unfortunately there is already a crate.io which similarly is an elastic data store. My thing is more about storage and transportation, but hey - it's close!

Attribution

Crate does a lot of work on Images, and so it's only fair to specify the attribution of those images. For the test images in the fixtures directory, see the README.md there. The header image in this README is attributed as follows:

Astro Crate by Steve is licensed under CC-BY-NC

About

File archival and meta data synchronization tool (experimental)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.6%
  • Makefile 0.4%