packages feed

kit 0.7.3 → 0.7.4

raw patch · 7 files changed

+35/−30 lines, 7 files

Files

Kit/CmdArgs.hs view
@@ -4,7 +4,7 @@   import System.Console.CmdArgs as CA    appVersion :: String-  appVersion = "0.7.0" -- TODO how to keep this up to date with kit.cabal?+  appVersion = "0.7.4" -- TODO how to keep this up to date with kit.cabal?    data KitCmdArgs = Update                   | Package@@ -32,5 +32,5 @@     ]    parseArgs :: IO KitCmdArgs-  parseArgs = cmdArgs $ parseMode &= program "kit" &= summary ("Kit " ++ appVersion)+  parseArgs = cmdArgs $ parseMode &= program "kit" &= summary ("Kit " ++ appVersion) &= versionArg [CA.name "v"] &= helpArg [CA.name "h"] 
Kit/Contents.hs view
@@ -41,10 +41,9 @@       resourceDir = liftIO $ do         let r = base </> kitDir </> specResourcesDirectory spec         b <- doesDirectoryExist r-        if b then-                Just <$> canonicalizePath r-             else-                return Nothing+        if b +          then Just <$> canonicalizePath r+          else return Nothing   in  KitContents spec <$> headers <*> sources <*> libs <*> config <*> prefix <*> resourceDir  -- TODO report missing file
Kit/Dependency.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE TupleSections #-} module Kit.Dependency (     totalSpecDependencies,-    Dependency(..),+    Dependency,     depSpec,     isDevDep,     dependencyTree,@@ -15,15 +15,15 @@ import Data.Tree import Data.List -data Dependency = Dep KitSpec | Dev KitSpec FilePath deriving (Eq, Show)+data Location = Repo | Dev FilePath deriving (Eq, Show)+data Dependency = Dependency KitSpec Location deriving (Eq, Show)  depSpec :: Dependency -> KitSpec-depSpec (Dep k) = k-depSpec (Dev k _) = k+depSpec (Dependency k _) = k    isDevDep :: Dependency -> Bool-isDevDep (Dep _) = False-isDevDep (Dev _ _) = True+isDevDep (Dependency _ Repo) = False+isDevDep (Dependency _ (Dev _)) = True  -- | Return all the (unique) children of this tree (except the top node), in reverse depth order. refineDeps :: Eq a => Tree a -> [a]@@ -35,8 +35,11 @@ totalSpecDependencies repo workingCopy = refineDeps <$> dependencyTree repo workingCopy  dependencyTree :: KitRepository -> WorkingCopy -> KitIO (Tree Dependency)-dependencyTree repo workingCopy = unfoldTreeM (unfoldDeps repo) (workingKitSpec workingCopy)+dependencyTree repo workingCopy = unfoldTreeM (unfoldDeps repo workingCopy) (workingKitSpec workingCopy) -unfoldDeps :: KitRepository -> KitSpec -> KitIO (Dependency, [KitSpec])-unfoldDeps kr ks = (Dep ks,) <$> mapM (readKitSpec kr) (specDependencies ks) +unfoldDeps :: KitRepository -> WorkingCopy -> KitSpec -> KitIO (Dependency, [KitSpec])+unfoldDeps kr wc ks = let devPackages = workingDevPackages wc +                          thisDev = find ((packageName ks ==) . packageName . fst) devPackages+                          theDep = maybe (Dependency ks Repo) (\(ks',fp) -> Dependency ks' (Dev fp)) thisDev+                       in (theDep,) <$> mapM (readKitSpec kr) (specDependencies $ depSpec theDep)  
Kit/Main.hs view
@@ -96,13 +96,7 @@   handleArgs (KA.CreateSpec name version) = doCreateSpec name version   handleArgs KA.ShowTree = doShowTree -  kitMain :: IO ()-  kitMain = do-    let f = runCommand . handleArgs =<< KA.parseArgs-    h <- getHomeDirectory-    fs <- inDirectory h $ glob ".kit/repository/kits/*/*/*.tar.gz"-    let c = length fs-    when (c > 0) $ do+  warnOldRepo c = do       say Red $ "Warning: Kit now expects packages in '.kit/cache/local' instead of '.kit/repository/kits'. (Found " ++ show c ++ " packages in the old location.)"       puts ""       say Red "To fix it, move the old directory into the new path:"@@ -110,6 +104,13 @@       say Red "\t$ mv ~/.kit/repository/kits/* ~/.kit/cache/local"       say Red "\t$ rmdir ~/.kit/repository/kits && rmdir ~/.kit/repository"       puts ""++  kitMain :: IO ()+  kitMain = do+    let f = runCommand . handleArgs =<< KA.parseArgs+    h <- getHomeDirectory+    fs <- inDirectory h $ glob ".kit/repository/kits/*/*/*.tar.gz"+    when (not $ null fs) $ warnOldRepo (length fs)     catch f $ \e -> do         alert $ show e         exitWith $ ExitFailure 1 
Kit/Repository.hs view
@@ -71,13 +71,13 @@       let source = (localCacheDir kr </> kitPackagePath kit)       let dest = packagesDirectory kr       d <- doesDirectoryExist $ dest </> packageFileName kit-      if not d then do+      if not d +        then do           putStrLn $ " -> Unpacking from cache: " ++ packageFileName kit           mkdirP dest            inDirectory dest $ system ("tar zxf " ++ source)           return ()-        else -          putStrLn $ " -> Using local package: " ++ packageFileName kit+        else putStrLn $ " -> Using local package: " ++ packageFileName kit       return ()    -- TODO: on publish local, need to flush this particular name/version out
Kit/WorkingCopy.hs view
@@ -19,7 +19,7 @@ data WorkingCopy = WorkingCopy {   workingKitSpec :: KitSpec,   workingSpecFile :: FilePath,-  workingDevPackages :: [(FilePath, KitSpec)]+  workingDevPackages :: [(KitSpec, FilePath)] } deriving (Eq, Show)  currentWorkingCopy :: KitIO WorkingCopy@@ -27,17 +27,19 @@   let specFile = "KitSpec"   spec <- readSpec specFile   devKitSpecFiles <- liftIO $ glob "dev-packages/*/KitSpec"-  let f path = (takeFileName . takeDirectory $ path,) <$> readSpec path+  let f path = (,takeFileName . takeDirectory $ path) <$> readSpec path   devKitSpecs <- mapM f devKitSpecFiles   return $ WorkingCopy spec specFile devKitSpecs  isDevPackage :: WorkingCopy -> KitSpec -> Bool-isDevPackage wc spec = any (\s -> packageName spec == packageName s) $ map snd (workingDevPackages wc)+isDevPackage wc spec = any (\s -> packageName spec == packageName s) $ map fst (workingDevPackages wc)  readSpec :: FilePath -> KitIO KitSpec readSpec path = checkExists path >>= liftIO . BS.readFile >>= ErrorT . return . parses   where checkExists pathToSpec = do           doesExist <- liftIO $ doesFileExist pathToSpec -          if doesExist then return pathToSpec else throwError $ "Couldn't find the spec at " ++ pathToSpec +          if doesExist +            then return pathToSpec +            else throwError ("Couldn't find the spec at " ++ pathToSpec)         parses = maybeToRight "Parse error in KitSpec file" . decodeSpec 
kit.cabal view
@@ -1,5 +1,5 @@ name:           kit-version:        0.7.3+version:        0.7.4 cabal-version:  >=1.2 build-type:     Simple license:        BSD3