⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 older.hs

📁 Haskell是一种程序语言。特别的
💻 HS
字号:
-----------------------------------------------------------------------------
-- |
-- Module      :  Main
-- Copyright   :  Thomas Hallgren
--
-- Maintainer  :  Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk>
-- Stability   :  Stable
-- Portability :  All
--
-- Main program for 'Older', a helper utility to calculate the dynamic
-- part of the dependencies when rebuilding a project.  (If module A has
-- a static dependency on module B, and module B is re-built, then module
-- A should only be rebuilt if B's interface has changed.)
-----------------------------------------------------------------------------
module Main(main) where

import System
import Time
#ifdef __HBC__
import FileStat
#endif
#if defined(__NHC__) || defined(__GLASGOW_HASKELL__)
import Directory (getModificationTime, doesFileExist)
#endif

data When = Never | At ClockTime

main = getArgs >>= \ args ->
       case args of
             [] -> error "Usage: older file.o file1.t ... filen.t"
             fs -> filemodtime [] fs >>= \ (tobj : ts) ->
                   putStr (if or (map (isOlder tobj) ts) then "1\n" else "0\n")


filemodtime acc []     = return (reverse acc)
filemodtime acc (f:fs) =
   readTime f >>= (\t-> filemodtime (t:acc) fs)


--mtime = itos 0 . head . drop (10::Int) . words
-- where
--   itos a (x:xs) | isDigit x = itos (a*10+ord x - ord '0') xs
--   itos a _ = a

#ifdef __HBC__
readTime f = catch (getFileStat f >>= \sf -> return (At (st_mtime sf)))
                   (\_ -> return Never)
#endif
#if defined(__NHC__) || defined(__GLASGOW_HASKELL__)
readTime f =
    doesFileExist f >>= \so->
    if so then
        getModificationTime f >>= \mt -> return (At mt)
    else return Never
#endif


-- mtime (dev,inode,mode,uid,size,atime,time) = time
-- readTime f ok = statFile f (\_ -> ok Never) (\sf -> ok (At (mtime sf)))

isOlder Never _ = True
isOlder _ Never = False
isOlder (At t1) (At t2) = t1 < t2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -