Initial commit

This commit is contained in:
Aditya Manthramurthy 2016-09-05 14:18:28 -07:00
parent a1b46694ac
commit d7ceaf272e
7 changed files with 197 additions and 0 deletions

2
Setup.hs Normal file
View File

@ -0,0 +1,2 @@
import Distribution.Simple
main = defaultMain

7
app/Main.hs Normal file
View File

@ -0,0 +1,7 @@
module Main where
import Protolude
import Lib
main :: IO ()
main = someFunc

52
minio-client.cabal Normal file
View File

@ -0,0 +1,52 @@
name: minio-client
version: 0.1.0.0
synopsis: Initial project template from stack
description: Please see README.md
homepage: https://github.com/donatello/minio-client#readme
license: BSD3
license-file: LICENSE
author: Aditya Manthramurthy
maintainer: aditya.mmy@gmail.com
copyright: GPLv3
category: Network, AWS, Object Storage
build-type: Simple
-- extra-source-files:
cabal-version: >=1.10
library
hs-source-dirs: src
ghc-options: -Wall
exposed-modules: Lib
other-modules: Lib.Prelude
build-depends: base >= 4.7 && < 5
, protolude >= 0.1.6 && < 0.2
, bytestring
, cryptonite
, text
default-language: Haskell2010
default-extensions: OverloadedStrings, NoImplicitPrelude
executable minio-client-exe
hs-source-dirs: app
main-is: Main.hs
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
build-depends: base
, minio-client
, protolude >= 0.1.6 && < 0.2
default-language: Haskell2010
default-extensions: OverloadedStrings, NoImplicitPrelude
test-suite minio-client-test
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
build-depends: base
, minio-client
, protolude >= 0.1.6 && < 0.2
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010
default-extensions: OverloadedStrings, NoImplicitPrelude
source-repository head
type: git
location: https://github.com/donatello/minio-client

55
src/Lib.hs Normal file
View File

@ -0,0 +1,55 @@
{-|
Module : Lib
Description : Lib's main module
This is a haddock comment describing your library
For more information on how to write Haddock comments check the user guide:
<https://www.haskell.org/haddock/doc/html/index.html>
-}
module Lib
( someFunc
, hmacSha256
, sha256Hash
) where
import Lib.Prelude
import Crypto.Hash (SHA256, Digest, hash)
import Crypto.MAC.HMAC (hmac, HMAC(hmacGetDigest))
-- | Prints someFunc
--
-- >>> someFunc 10
-- someFunc
someFunc :: IO ()
someFunc = putStrLn ("someFunc" :: Text)
hmacSha256 :: ByteString -> ByteString -> ByteString
hmacSha256 key message =
show (hmacGetDigest (hmac key message) :: Digest SHA256)
sha256Hash :: ByteString -> ByteString
sha256Hash payload = show (hash payload :: Digest SHA256)
{-
public static String UriEncode(CharSequence input, boolean encodeSlash) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < input.length(); i++) {
char ch = input.charAt(i);
if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') ||
(ch >= '0' && ch <= '9') || ch == '_' || ch == '-' || ch == '~' || ch == '.') {
result.append(ch);
} else if (ch == '/') {
result.append(encodeSlash ? "%2F" : ch);
} else {
result.append(toHexUTF8(ch));
}
}
return result.toString();
}
ch 65536 -> %10000
-}
uriEncode :: Text -> Bool -> ByteString
uriEncode payload encodeSlash =

11
src/Lib/Prelude.hs Normal file
View File

@ -0,0 +1,11 @@
{-
Welcome to your custom Prelude
Export here everything that should always be in your library scope
For more info on what is exported by Protolude check:
https://github.com/sdiehl/protolude/blob/master/Symbols.md
-}
module Lib.Prelude
( module Exports
) where
import Protolude as Exports

66
stack.yaml Normal file
View File

@ -0,0 +1,66 @@
# This file was automatically generated by 'stack init'
#
# Some commonly used options have been documented as comments in this file.
# For advanced use and comprehensive documentation of the format, please see:
# http://docs.haskellstack.org/en/stable/yaml_configuration/
# Resolver to choose a 'specific' stackage snapshot or a compiler version.
# A snapshot resolver dictates the compiler version and the set of packages
# to be used for project dependencies. For example:
#
# resolver: lts-3.5
# resolver: nightly-2015-09-21
# resolver: ghc-7.10.2
# resolver: ghcjs-0.1.0_ghc-7.10.2
# resolver:
# name: custom-snapshot
# location: "./custom-snapshot.yaml"
resolver: lts-6.15
# User packages to be built.
# Various formats can be used as shown in the example below.
#
# packages:
# - some-directory
# - https://example.com/foo/bar/baz-0.0.2.tar.gz
# - location:
# git: https://github.com/commercialhaskell/stack.git
# commit: e7b331f14bcffb8367cd58fbfc8b40ec7642100a
# - location: https://github.com/commercialhaskell/stack/commit/e7b331f14bcffb8367cd58fbfc8b40ec7642100a
# extra-dep: true
# subdirs:
# - auto-update
# - wai
#
# A package marked 'extra-dep: true' will only be built if demanded by a
# non-dependency (i.e. a user package), and its test suites and benchmarks
# will not be run. This is useful for tweaking upstream packages.
packages:
- '.'
# Dependency packages to be pulled from upstream that are not in the resolver
# (e.g., acme-missiles-0.3)
extra-deps: []
# Override default flag values for local packages and extra-deps
flags: {}
# Extra package databases containing global packages
extra-package-dbs: []
# Control whether we use the GHC we find on the path
# system-ghc: true
#
# Require a specific version of stack, using version ranges
# require-stack-version: -any # Default
# require-stack-version: ">=1.1"
#
# Override the architecture used by stack, especially useful on Windows
# arch: i386
# arch: x86_64
#
# Extra directories used by stack for building
# extra-include-dirs: [/path/to/dir]
# extra-lib-dirs: [/path/to/dir]
#
# Allow a newer minor version of GHC than the snapshot specifies
# compiler-check: newer-minor

4
test/Spec.hs Normal file
View File

@ -0,0 +1,4 @@
import Protolude
main :: IO ()
main = putStrLn ("Test suite not yet implemented" :: Text)