Skip to content

Commit 4b87708

Browse files
authored
Remove add-from-bower (#122)
* remove add-from-bower entirely * bump cabal breaking version
1 parent 234d02a commit 4b87708

File tree

3 files changed

+1
-70
lines changed

3 files changed

+1
-70
lines changed

README.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -146,14 +146,6 @@ Similar to the above, you will need to do the setup. You can then modify the ver
146146

147147
Then you can make a pull request. Again, once Travis verifies your change, we will merge it into `master` and your change will be available in the next tag.
148148

149-
### Add a package from Bower
150-
151-
If you have Bower installed on your system, you can easily add a package from Bower to the package set. Use the Bower package name to add the package using the `add-from-bower` command:
152-
153-
```
154-
psc-package add-from-bower <purescript-something>
155-
```
156-
157149
## FAQ
158150

159151
### How come I can't install (some package) from the package set?

app/Main.hs

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,9 @@ module Main where
1111

1212
import qualified Control.Foldl as Foldl
1313
import Control.Concurrent.Async (forConcurrently_, mapConcurrently)
14-
import Control.Error.Util (note)
1514
import qualified Data.Aeson as Aeson
16-
import Data.Aeson.Types (fieldLabelModifier)
1715
import Data.Aeson.Encode.Pretty
1816
import Data.Foldable (fold, foldMap, traverse_)
19-
import qualified Data.Bifunctor as Bifunctor
2017
import qualified Data.Graph as G
2118
import Data.List (maximumBy)
2219
import qualified Data.List as List
@@ -496,61 +493,6 @@ verify arg = do
496493
let srcGlobs = map (pathToTextUnsafe . (</> ("src" </> "**" </> "*.purs"))) dirs
497494
procs "purs" ("compile" : srcGlobs) empty
498495

499-
data BowerInfoRepo = BowerInfoRepo
500-
{ url :: Text
501-
} deriving (Show, Eq, Generic, Aeson.FromJSON)
502-
503-
data BowerInfo = BowerInfo
504-
{ bower_name :: Text
505-
, bower_repository :: BowerInfoRepo
506-
, bower_dependencies :: Maybe (Map.Map Text Text)
507-
, bower_version :: Maybe Text
508-
} deriving (Show, Eq, Generic)
509-
instance Aeson.FromJSON BowerInfo where
510-
parseJSON = Aeson.genericParseJSON Aeson.defaultOptions
511-
{ fieldLabelModifier = drop 6
512-
}
513-
514-
data BowerOutput = BowerOutput
515-
{ latest :: BowerInfo
516-
} deriving (Show, Eq, Generic, Aeson.FromJSON)
517-
518-
addFromBower :: String -> IO ()
519-
addFromBower arg = do
520-
echoT $ "Adding package " <> name <> " at " <> (fromMaybe "latest" version) <> " from Bower..."
521-
let bowerProc = inproc "bower" [ "info", T.pack arg, "--json", "-l=error" ] empty
522-
result <- fold <$> shellToIOText bowerProc
523-
if T.null result
524-
then exitWithErr "Error: Does the package exist on Bower?"
525-
else do
526-
let result' = do
527-
bowerInfo <- case version of
528-
Just _ -> Aeson.eitherDecodeStrict (encodeUtf8 result) :: Either String BowerInfo
529-
Nothing -> latest <$> Aeson.eitherDecodeStrict (encodeUtf8 result) :: Either String BowerInfo
530-
version' <- note "Unable to infer the package version" $ ("v" <>) <$> bower_version bowerInfo <|> version
531-
pkgName <- mkPackageName' $ bower_name bowerInfo
532-
packageNames <- traverse mkPackageName' $ Map.keys (fromMaybe Map.empty $ bower_dependencies bowerInfo)
533-
pure $
534-
( pkgName
535-
, PackageInfo
536-
(T.replace "git:" "https:" . url $ bower_repository bowerInfo)
537-
version'
538-
packageNames
539-
)
540-
case result' of
541-
Right (pkgName, info) -> do
542-
db <- readLocalPackageSet
543-
writeLocalPackageSet $ Map.insert pkgName info db
544-
echoT $ "Successfully wrote " <> runPackageName pkgName <> " to package set."
545-
Left errors -> echoT $ "Errors processing Bower Info: " <> (T.pack errors)
546-
where
547-
stripBowerNamePrefix s = fromMaybe s $ T.stripPrefix "purescript-" s
548-
mkPackageName' = Bifunctor.first show . mkPackageName . stripBowerNamePrefix
549-
parseVersion' s = case s of
550-
"" -> Nothing
551-
s' -> Just $ T.tail s'
552-
(name, version) = Bifunctor.second parseVersion' $ T.breakOn "#" $ T.pack arg
553-
554496
formatPackageFile :: IO ()
555497
formatPackageFile =
556498
readLocalPackageSet >>= writeLocalPackageSet
@@ -619,9 +561,6 @@ main = do
619561
<|> (VerifyAll <$> optional (fromString <$> after)))
620562
Opts.<**> Opts.helper)
621563
(Opts.progDesc "Verify that the named package builds correctly. If no package is specified, verify that all packages in the package set build correctly."))
622-
, Opts.command "add-from-bower"
623-
(Opts.info (addFromBower <$> pkg Opts.<**> Opts.helper)
624-
(Opts.progDesc "Add a package from the Bower registry to the package set. This requires Bower to be installed on your system."))
625564
, Opts.command "format"
626565
(Opts.info (pure formatPackageFile)
627566
(Opts.progDesc "Format the packages.json file for consistency"))

psc-package.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: psc-package
2-
version: 0.3.3
2+
version: 0.4.0
33
synopsis: An experimental package manager for PureScript
44
description:
55
homepage: https://github.com/purescript/psc-package

0 commit comments

Comments
 (0)