- ExposePackage str ->
- case matchingPackages str pkgs of
- Nothing -> missingPackageErr str
- Just ([], _) -> panic "applyPackageFlag"
- Just (p:ps,qs) -> return (p':ps')
- where p' = p {exposed=True}
- ps' = hideAll (pkgName (package p)) (ps++qs)
-
- HidePackage str ->
- case matchingPackages str pkgs of
- Nothing -> missingPackageErr str
- Just (ps,qs) -> return (map hide ps ++ qs)
- where hide p = p {exposed=False}
-
- IgnorePackage str ->
- case matchingPackages str pkgs of
- Nothing -> return pkgs
- Just (_, qs) -> return qs
- -- missing package is not an error for -ignore-package,
- -- because a common usage is to -ignore-package P as
- -- a preventative measure just in case P exists.
+ ExposePackage str ->
+ case selectPackages (matchingStr str) pkgs unusable of
+ Left ps -> packageFlagErr flag ps
+ Right (p:ps,qs) -> return (p':ps')
+ where p' = p {exposed=True}
+ ps' = hideAll (pkgName (sourcePackageId p)) (ps++qs)
+ _ -> panic "applyPackageFlag"
+
+ ExposePackageId str ->
+ case selectPackages (matchingId str) pkgs unusable of
+ Left ps -> packageFlagErr flag ps
+ Right (p:ps,qs) -> return (p':ps')
+ where p' = p {exposed=True}
+ ps' = hideAll (pkgName (sourcePackageId p)) (ps++qs)
+ _ -> panic "applyPackageFlag"
+
+ HidePackage str ->
+ case selectPackages (matchingStr str) pkgs unusable of
+ Left ps -> packageFlagErr flag ps
+ Right (ps,qs) -> return (map hide ps ++ qs)
+ where hide p = p {exposed=False}
+
+ _ -> panic "applyPackageFlag"
+