Split off cli

This commit is contained in:
Chris Penner 2021-10-12 12:42:46 -06:00
parent 3996559579
commit 5de74416f9
12 changed files with 151 additions and 93 deletions

19
cli/LICENSE Normal file
View File

@ -0,0 +1,19 @@
Copyright (c) 2013, Paul Chiusano and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

55
cli/package.yaml Normal file
View File

@ -0,0 +1,55 @@
name: unison-cli
github: unisonweb/unison
copyright: Copyright (C) 2013-2018 Unison Computing, PBC and contributors
default-extensions:
- ApplicativeDo
- BlockArguments
- DeriveFunctor
- DerivingStrategies
- DoAndIfThenElse
- FlexibleContexts
- FlexibleInstances
- LambdaCase
- MultiParamTypeClasses
- ScopedTypeVariables
- TupleSections
- TypeApplications
flags:
optimized:
manual: true
default: false
executables:
unison:
source-dirs: unison
main: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-I0 -optP-Wno-nonportable-include-path
dependencies:
- base
- compact
- configurator
- directory
- directory
- errors
- filepath
- megaparsec
- mtl
- optparse-applicative >= 0.16.1.0
- shellmet
- template-haskell
- temporary
- text
- unison-core1
- unison-parser-typechecker
- unison-prelude
- unliftio
when:
- condition: '!os(windows)'
dependencies: unix
when:
- condition: flag(optimized)
ghc-options: -O2 -funbox-strict-fields

71
cli/unison-cli.cabal Normal file
View File

@ -0,0 +1,71 @@
cabal-version: 1.12
-- This file has been generated from package.yaml by hpack version 0.34.4.
--
-- see: https://github.com/sol/hpack
name: unison-cli
version: 0.0.0
homepage: https://github.com/unisonweb/unison#readme
bug-reports: https://github.com/unisonweb/unison/issues
copyright: Copyright (C) 2013-2018 Unison Computing, PBC and contributors
license: MIT
license-file: LICENSE
build-type: Simple
source-repository head
type: git
location: https://github.com/unisonweb/unison
flag optimized
manual: True
default: False
executable unison
main-is: Main.hs
other-modules:
ArgParse
Compat
System.Path
Version
Paths_unison_cli
hs-source-dirs:
unison
default-extensions:
ApplicativeDo
BlockArguments
DeriveFunctor
DerivingStrategies
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
LambdaCase
MultiParamTypeClasses
ScopedTypeVariables
TupleSections
TypeApplications
ghc-options: -threaded -rtsopts -with-rtsopts=-I0 -optP-Wno-nonportable-include-path
build-depends:
base
, compact
, configurator
, directory
, errors
, filepath
, megaparsec
, mtl
, optparse-applicative >=0.16.1.0
, shellmet
, template-haskell
, temporary
, text
, unison-core1
, unison-parser-typechecker
, unison-prelude
, unliftio
if flag(optimized)
ghc-options: -O2 -funbox-strict-fields
if !os(windows)
build-depends:
unix
default-language: Haskell2010

View File

@ -45,8 +45,8 @@ cradle:
- path: "parser-typechecker/transcripts"
component: "unison-parser-typechecker:exe:transcripts"
- path: "parser-typechecker/unison"
component: "unison-parser-typechecker:exe:unison"
- path: "cli/app"
component: "cli:exe:unison"
- path: "parser-typechecker/benchmarks/runtime"
component: "unison-parser-typechecker:bench:runtime"

View File

@ -126,38 +126,6 @@ library:
- uri-encode
executables:
unison:
source-dirs: unison
main: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-I0 -optP-Wno-nonportable-include-path
dependencies:
- base
- bytestring
- compact
- containers
- configurator
- directory
- errors
- filepath
- lens
- megaparsec
- mtl
- optparse-applicative >= 0.16.1.0
- safe
- shellmet
- template-haskell
- temporary
- text
- unison-core1
- unison-parser-typechecker
- unison-codebase-sync
- unison-prelude
- uri-encode
- unliftio
when:
- condition: '!os(windows)'
dependencies: unix
prettyprintdemo:
source-dirs: prettyprintdemo
main: Main.hs
@ -217,8 +185,9 @@ executables:
- unison-core1
- unison-parser-typechecker
- unison-prelude
build-tools:
- unison-parser-typechecker:unison
# TODO: move transcripts to cli package, or preferably avoid shelling-out and run transcripts by calling the implementation directly?
# build-tools:
# - unison-cli:unison
benchmarks:
runtime:

View File

@ -446,8 +446,6 @@ executable transcripts
TupleSections
TypeApplications
ghc-options: -Wall -O0 -fno-warn-name-shadowing -fno-warn-missing-pattern-synonym-signatures -threaded -rtsopts -with-rtsopts=-N -v0
build-tools:
unison
build-depends:
base
, directory
@ -463,61 +461,6 @@ executable transcripts
ghc-options: -funbox-strict-fields -O2
default-language: Haskell2010
executable unison
main-is: Main.hs
other-modules:
ArgParse
Compat
System.Path
Version
Paths_unison_parser_typechecker
hs-source-dirs:
unison
default-extensions:
ApplicativeDo
BlockArguments
DeriveFunctor
DerivingStrategies
DoAndIfThenElse
FlexibleContexts
FlexibleInstances
LambdaCase
MultiParamTypeClasses
ScopedTypeVariables
TupleSections
TypeApplications
ghc-options: -Wall -O0 -fno-warn-name-shadowing -fno-warn-missing-pattern-synonym-signatures -threaded -rtsopts -with-rtsopts=-I0 -optP-Wno-nonportable-include-path
build-depends:
base
, bytestring
, compact
, configurator
, containers
, directory
, errors
, filepath
, lens
, megaparsec
, mtl
, optparse-applicative >=0.16.1.0
, safe
, shellmet
, template-haskell
, temporary
, text
, unison-codebase-sync
, unison-core1
, unison-parser-typechecker
, unison-prelude
, unliftio
, uri-encode
if flag(optimized)
ghc-options: -funbox-strict-fields -O2
if !os(windows)
build-depends:
unix
default-language: Haskell2010
benchmark runtime
type: exitcode-stdio-1.0
main-is: Main.hs

View File

@ -13,6 +13,7 @@ packages:
- yaks/easytest
- parser-typechecker
- unison-core
- cli
- codebase2/codebase
- codebase2/codebase-sqlite
- codebase2/codebase-sync