Copyright | (c) 2021 berberman |
---|---|
License | MIT |
Maintainer | berberman <berberman@yandex.com> |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
NvFetcher.Nvchecker
Description
nvchecker is a program checking new versions of packages.
We encode the checking process into shake build system, generating configuration of nvchecker and calling it externally.
Now we call nvchecker for each VersionSource
, which seems not to be efficient, but it's tolerable when running in parallel.
Meanwhile, we lose the capabilities of tracking version updates, i.e. normally nvchecker will help us maintain a list of old versions,
so that we are able to know which package's version is updated in this run. Fortunately, we can reimplement this using shake database,
see nvcheckerRule
for details.
Synopsis
- data VersionSortMethod
- data ListOptions = ListOptions {}
- data NvcheckerQ = NvcheckerQ VersionSource NvcheckerOptions
- data NvcheckerOptions = NvcheckerOptions {}
- data VersionSource
- = GitHubRelease { }
- | GitHubTag {
- _owner :: Text
- _repo :: Text
- _listOptions :: ListOptions
- | Git { }
- | Pypi { }
- | ArchLinux { }
- | Aur { }
- | Manual { }
- | Repology { }
- | Webpage {
- _vurl :: Text
- _regex :: Text
- _listOptions :: ListOptions
- | HttpHeader {
- _vurl :: Text
- _regex :: Text
- _listOptions :: ListOptions
- data NvcheckerA = NvcheckerA {}
- nvcheckerRule :: Rules ()
- checkVersion :: VersionSource -> NvcheckerOptions -> PackageKey -> Action NvcheckerA
Types
data VersionSortMethod Source #
Constructors
ParseVersion | |
Vercmp |
Instances
data ListOptions Source #
Filter-like configuration for some version sources. See https://nvchecker.readthedocs.io/en/latest/usage.html#list-options for details.
Constructors
ListOptions | |
Fields |
Instances
data NvcheckerQ Source #
The input of nvchecker
Constructors
NvcheckerQ VersionSource NvcheckerOptions |
Instances
data NvcheckerOptions Source #
Configuration available for evey version sourece. See https://nvchecker.readthedocs.io/en/latest/usage.html#global-options for details.
Constructors
NvcheckerOptions | |
Fields
|
Instances
data VersionSource Source #
Upstream version source for nvchecker to check
Constructors
GitHubRelease | |
GitHubTag | |
Fields
| |
Git | |
Pypi | |
ArchLinux | |
Aur | |
Manual | |
Repology | |
Webpage | |
Fields
| |
HttpHeader | |
Fields
|
Instances
data NvcheckerA Source #
The result of running nvchecker
Constructors
NvcheckerA | |
Instances
Eq NvcheckerA Source # | |
Defined in NvFetcher.Types | |
Show NvcheckerA Source # | |
Defined in NvFetcher.Types Methods showsPrec :: Int -> NvcheckerA -> ShowS # show :: NvcheckerA -> String # showList :: [NvcheckerA] -> ShowS # | |
Generic NvcheckerA Source # | |
Defined in NvFetcher.Types Associated Types type Rep NvcheckerA :: Type -> Type # | |
Hashable NvcheckerA Source # | |
Defined in NvFetcher.Types | |
FromJSON NvcheckerA Source # | |
Defined in NvFetcher.Types | |
Binary NvcheckerA Source # | |
Defined in NvFetcher.Types | |
NFData NvcheckerA Source # | |
Defined in NvFetcher.Types Methods rnf :: NvcheckerA -> () # | |
type Rep NvcheckerA Source # | |
Defined in NvFetcher.Types type Rep NvcheckerA = D1 ('MetaData "NvcheckerA" "NvFetcher.Types" "nvfetcher-0.3.0.0-inplace" 'False) (C1 ('MetaCons "NvcheckerA" 'PrefixI 'True) (S1 ('MetaSel ('Just "nvNow") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Version) :*: S1 ('MetaSel ('Just "nvOld") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Version)))) |
Rules
nvcheckerRule :: Rules () Source #
Rules of nvchecker
checkVersion :: VersionSource -> NvcheckerOptions -> PackageKey -> Action NvcheckerA Source #
Run nvchecker