9 Commits

Author SHA1 Message Date
08d2827613 version 0.3.0.1
- updated to latest lts
- specified dependency versions
2021-05-09 12:57:38 -04:00
4ac3d37913 version 0.3.0 2021-01-05 21:26:12 -05:00
4be38eb87a updated ChangeLog 2021-01-05 21:25:29 -05:00
807e09a5ae switched from lens package to microlens 2021-01-05 21:22:41 -05:00
c5cdde8f73 removed unnecessary import 2021-01-05 21:22:05 -05:00
d87ccc4346 updated copyright
modified in 2021
2021-01-05 21:08:41 -05:00
2d70a9e284 updated to more recent snapshot 2021-01-05 10:28:18 -05:00
97a5ff4c92 updated email address 2020-12-14 22:41:24 -05:00
df5f0a4334 updated copyright 2020-12-14 22:10:14 -05:00
27 changed files with 192 additions and 71 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,2 @@
.stack-work/ .stack-work/
passman.cabal
*~ *~

View File

@@ -1,5 +1,15 @@
# Changelog for passman # Changelog for passman
## 0.3.0.1
- updated to latest stackage LTS
- specified versions for dependencies
## 0.3.0
- updated to more recent LTS snapshot
- use microlens instead of lens
## 0.2.1 ## 0.2.1
- refactoring - refactoring

View File

@@ -1,7 +1,7 @@
# passman # passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -22,7 +22,6 @@ License along with this program. If not, see
module Main where module Main where
import Control.Monad (mapM_)
import Control.Monad.Trans.State as S import Control.Monad.Trans.State as S
import System.Console.HCL (Request, reqIO, runRequest) import System.Console.HCL (Request, reqIO, runRequest)
import System.EasyFile import System.EasyFile

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -24,7 +24,8 @@ License along with this program. If not, see
module Types (Status (Status), gen, dbPath, masterPass, database) where module Types (Status (Status), gen, dbPath, masterPass, database) where
import Control.Lens (makeLenses, set, (^.)) import Lens.Micro (set, (^.))
import Lens.Micro.TH (makeLenses)
import System.Random (RandomGen (next, split), StdGen) import System.Random (RandomGen (next, split), StdGen)
import Password import Password

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -24,10 +24,11 @@ License along with this program. If not, see
module UI (getMasterPass, mainMenu) where module UI (getMasterPass, mainMenu) where
import Control.Lens (over, set, view, (^.))
import Control.Monad (when) import Control.Monad (when)
import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Class (lift)
import qualified Control.Monad.Trans.State as S import qualified Control.Monad.Trans.State as S
import Lens.Micro (over, set, (^.))
import Lens.Micro.Extras (view)
import System.Console.HCL import System.Console.HCL
( Request ( Request
, prompt , prompt

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -33,12 +33,13 @@ module Util
, save , save
) where ) where
import Control.Lens (over, view)
import Control.Monad (join) import Control.Monad (join)
import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Class (lift)
import qualified Control.Monad.Trans.State as S import qualified Control.Monad.Trans.State as S
import Data.Aeson (decodeFileStrict, encodeFile) import Data.Aeson (decodeFileStrict, encodeFile)
import Data.Maybe (fromJust, fromMaybe) import Data.Maybe (fromJust, fromMaybe)
import Lens.Micro (over)
import Lens.Micro.Extras (view)
import System.Console.HCL import System.Console.HCL
( Request ( Request
, prompt , prompt

View File

@@ -1,10 +1,10 @@
name: passman name: passman
version: 0.2.1 version: 0.3.0.1
github: "jlamothe/passman" github: "jlamothe/passman"
license: LGPL-3 license: LGPL-3
author: "Jonathan Lamothe" author: "Jonathan Lamothe"
maintainer: "jlamothe1980@gmail.com" maintainer: "jonathan@jlamothe.net"
copyright: "(C) 2018, 2019 Jonathan Lamothe" copyright: "(C) 2018-2021 Jonathan Lamothe"
extra-source-files: extra-source-files:
- README.md - README.md
@@ -21,10 +21,11 @@ description: Please see the README on GitHub at <https://github.com/jlam
dependencies: dependencies:
- base >= 4.7 && < 5 - base >= 4.7 && < 5
- aeson - aeson >= 1.5.6.0 && < 1.6
- bytestring - bytestring >= 0.10.12.0 && < 0.11
- containers - containers >= 0.6.2.1 && < 0.7
- lens - microlens >= 0.4.11.2 && < 0.5
- microlens-th >= 0.4.3.6 && < 0.5
- random - random
ghc-options: ghc-options:
@@ -49,7 +50,7 @@ executables:
dependencies: dependencies:
- passman - passman
- easy-file >= 0.2.2 && < 0.3 - easy-file >= 0.2.2 && < 0.3
- HCL >= 1.7.1 && < 2 - HCL >= 1.8 && < 1.9
- transformers - transformers
tests: tests:

108
passman.cabal Normal file
View File

@@ -0,0 +1,108 @@
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.33.0.
--
-- see: https://github.com/sol/hpack
--
-- hash: cb93fb36b8e4bc0ba6599211ccbb3c5be2617b87a64c3afd57b41914d9ecd495
name: passman
version: 0.3.0.1
synopsis: a simple password manager
description: Please see the README on GitHub at <https://github.com/jlamothe/passman#readme>
category: Security
homepage: https://github.com/jlamothe/passman#readme
bug-reports: https://github.com/jlamothe/passman/issues
author: Jonathan Lamothe
maintainer: jonathan@jlamothe.net
copyright: (C) 2018-2021 Jonathan Lamothe
license: LGPL-3
license-file: LICENSE
build-type: Simple
extra-source-files:
README.md
ChangeLog.md
source-repository head
type: git
location: https://github.com/jlamothe/passman
library
exposed-modules:
Password
other-modules:
Paths_passman
hs-source-dirs:
src
ghc-options: -Wall
build-depends:
SHA
, aeson >=1.5.6.0 && <1.6
, base >=4.7 && <5
, base16-bytestring
, base64-bytestring
, bytestring >=0.10.12.0 && <0.11
, containers >=0.6.2.1 && <0.7
, microlens >=0.4.11.2 && <0.5
, microlens-th >=0.4.3.6 && <0.5
, random
, text
default-language: Haskell2010
executable passman
main-is: Main.hs
other-modules:
Types
UI
Util
Paths_passman
hs-source-dirs:
app
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
build-depends:
HCL >=1.8 && <1.9
, aeson >=1.5.6.0 && <1.6
, base >=4.7 && <5
, bytestring >=0.10.12.0 && <0.11
, containers >=0.6.2.1 && <0.7
, easy-file >=0.2.2 && <0.3
, microlens >=0.4.11.2 && <0.5
, microlens-th >=0.4.3.6 && <0.5
, passman
, random
, transformers
default-language: Haskell2010
test-suite passman-test
type: exitcode-stdio-1.0
main-is: Spec.hs
other-modules:
Spec.JSON
Spec.NewPWData
Spec.NewPWDatabase
Spec.NewPWPolicy
Spec.NewPWSalt
Spec.PWGenerate
Spec.PWGetService
Spec.PWHasService
Spec.PWRemoveService
Spec.PWSearch
Spec.PWSetService
Spec.ValidatePWData
Spec.ValidatePWDatabase
Spec.ValidatePWPolicy
Paths_passman
hs-source-dirs:
test
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
build-depends:
HUnit
, aeson >=1.5.6.0 && <1.6
, base >=4.7 && <5
, bytestring >=0.10.12.0 && <0.11
, containers >=0.6.2.1 && <0.7
, microlens >=0.4.11.2 && <0.5
, microlens-th >=0.4.3.6 && <0.5
, passman
, random
default-language: Haskell2010

View File

@@ -2,9 +2,9 @@
Module: Password Module: Password
Description: a simple password manager Description: a simple password manager
Copyright: (C) 2018, 2019 Jonathan Lamothe Copyright: (C) 2018-2021 Jonathan Lamothe
License: LGPLv3 (or later) License: LGPLv3 (or later)
Maintainer: jlamothe1980@gmail.com Maintainer: jonathan@jlamothe.net
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -47,7 +47,6 @@ module Password (
pwHasService, pwSetService, pwGetService, pwRemoveService, pwSearch pwHasService, pwSetService, pwGetService, pwRemoveService, pwSearch
) where ) where
import Control.Lens (makeLenses, over, set, to, (^.))
import Data.Aeson import Data.Aeson
( FromJSON (parseJSON) ( FromJSON (parseJSON)
, ToJSON (toJSON) , ToJSON (toJSON)
@@ -67,6 +66,8 @@ import Data.Digest.Pure.SHA
import qualified Data.Map as M import qualified Data.Map as M
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import qualified Data.Text as T import qualified Data.Text as T
import Lens.Micro (over, set, to, (^.))
import Lens.Micro.TH (makeLenses)
import System.Random (RandomGen, randoms, split) import System.Random (RandomGen, randoms, split)
-- | a mapping of service names to password data -- | a mapping of service names to password data

View File

@@ -17,7 +17,7 @@
# #
# resolver: ./custom-snapshot.yaml # resolver: ./custom-snapshot.yaml
# resolver: https://example.com/snapshots/2018-01-01.yaml # resolver: https://example.com/snapshots/2018-01-01.yaml
resolver: lts-12.21 resolver: lts-17.10
# User packages to be built. # User packages to be built.
# Various formats can be used as shown in the example below. # Various formats can be used as shown in the example below.
@@ -38,7 +38,7 @@ packages:
# using the same syntax as the packages field. # using the same syntax as the packages field.
# (e.g., acme-missiles-0.3) # (e.g., acme-missiles-0.3)
extra-deps: extra-deps:
- HCL-1.7.1@sha256:7bc617fbc9ba4b1f9c10d9b3e195042c1f031629f86d08253eec87660492d646 - HCL-1.8@sha256:39ec0da0cd6157f20c395e1b0df474df45efb0088afdaab20bb9dfb3662baf7c,1726
# Override default flag values for local packages and extra-deps # Override default flag values for local packages and extra-deps
# flags: {} # flags: {}

View File

@@ -5,15 +5,15 @@
packages: packages:
- completed: - completed:
hackage: HCL-1.7.1@sha256:7bc617fbc9ba4b1f9c10d9b3e195042c1f031629f86d08253eec87660492d646,1627 hackage: HCL-1.8@sha256:39ec0da0cd6157f20c395e1b0df474df45efb0088afdaab20bb9dfb3662baf7c,1726
pantry-tree: pantry-tree:
size: 1223 size: 1223
sha256: 5dd9d6b52e85caae6e47d8686be92873e00de14791c4e2c2753492ff288454fe sha256: 5c93c5184dc378de5ecf235aa1a60dc24163ab7e0efad19c8f3bbc94354cf2b8
original: original:
hackage: HCL-1.7.1@sha256:7bc617fbc9ba4b1f9c10d9b3e195042c1f031629f86d08253eec87660492d646 hackage: HCL-1.8@sha256:39ec0da0cd6157f20c395e1b0df474df45efb0088afdaab20bb9dfb3662baf7c,1726
snapshots: snapshots:
- completed: - completed:
size: 508406 size: 567241
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/12/21.yaml url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/17/10.yaml
sha256: 609dd00c32f59e11bb333b9113d9d2e54269627de1268cbb3cc576af8c7b6237 sha256: 321b3b9f0c7f76994b39e0dabafdc76478274b4ff74cc5e43d410897a335ad3b
original: lts-12.21 original: lts-17.10

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -22,7 +22,7 @@ License along with this program. If not, see
module Spec.NewPWData (tests) where module Spec.NewPWData (tests) where
import Control.Lens ((^.)) import Lens.Micro ((^.))
import System.Random (mkStdGen, StdGen) import System.Random (mkStdGen, StdGen)
import Test.HUnit (Test (..), (~?=)) import Test.HUnit (Test (..), (~?=))

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -22,7 +22,7 @@ License along with this program. If not, see
module Spec.NewPWPolicy (tests) where module Spec.NewPWPolicy (tests) where
import Control.Lens ((^.)) import Lens.Micro ((^.))
import Test.HUnit (Test(..), (~?=)) import Test.HUnit (Test(..), (~?=))
import Password import Password

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -22,8 +22,8 @@ License along with this program. If not, see
module Spec.PWGenerate (tests) where module Spec.PWGenerate (tests) where
import Control.Lens (set, (^.))
import Data.Maybe (fromJust) import Data.Maybe (fromJust)
import Lens.Micro (set, (^.))
import System.Random (mkStdGen, StdGen) import System.Random (mkStdGen, StdGen)
import Test.HUnit import Test.HUnit
(Test (..) (Test (..)

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -22,8 +22,8 @@ License along with this program. If not, see
module Spec.ValidatePWData (tests) where module Spec.ValidatePWData (tests) where
import Control.Lens (set)
import qualified Data.ByteString.Lazy as B import qualified Data.ByteString.Lazy as B
import Lens.Micro (set)
import System.Random (mkStdGen, StdGen) import System.Random (mkStdGen, StdGen)
import Test.HUnit (Test (..), (~?=)) import Test.HUnit (Test (..), (~?=))

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -22,8 +22,8 @@ License along with this program. If not, see
module Spec.ValidatePWDatabase (tests) where module Spec.ValidatePWDatabase (tests) where
import Control.Lens (set)
import qualified Data.Map as M import qualified Data.Map as M
import Lens.Micro (set)
import System.Random (mkStdGen, StdGen) import System.Random (mkStdGen, StdGen)
import Test.HUnit (Test (..), (~?=)) import Test.HUnit (Test (..), (~?=))

View File

@@ -1,8 +1,8 @@
{- {-
passman passman
Copyright (C) 2018, 2019 Jonathan Lamothe Copyright (C) 2018-2021 Jonathan Lamothe
<jlamothe1980@gmail.com> <jonathan@jlamothe.net>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as it under the terms of the GNU Lesser General Public License as
@@ -22,7 +22,7 @@ License along with this program. If not, see
module Spec.ValidatePWPolicy (tests) where module Spec.ValidatePWPolicy (tests) where
import Control.Lens (set) import Lens.Micro (set)
import Test.HUnit (Test(..), (~?=)) import Test.HUnit (Test(..), (~?=))
import Password import Password