aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--main.go34
1 files changed, 21 insertions, 13 deletions
diff --git a/main.go b/main.go
index 08640d1..24cb0a4 100644
--- a/main.go
+++ b/main.go
@@ -16,15 +16,17 @@ var cfgFile = flag.String("f", "config.yml", "configuration file")
var cacheFile = flag.String("c", "feed.cache", "cache file")
var verbose = flag.Bool("v", false, "enable verbose output")
var debug = flag.Bool("d", false, "enable debug output")
+var dryRun = flag.Bool("dry-run", false, "do everything short of uploading and writing the cache")
+var buildCache = flag.Bool("build-cache", false, "only (re)build the cache; useful after migration or when the cache is lost or corrupted")
-func processFeed(feed *feed.Feed, cfg *config.Config, client *imap.Client) {
+func processFeed(feed *feed.Feed, cfg *config.Config, client *imap.Client, dryRun bool) {
mails, err := feed.ToMails(cfg)
if err != nil {
log.Errorf("Processing items of feed %s: %s", feed.Name, err)
return
}
- if len(mails) == 0 {
+ if dryRun || len(mails) == 0 {
feed.MarkSuccess()
return
}
@@ -66,7 +68,7 @@ func run() error {
state := feed.NewState(cfg)
- err = state.LoadCache(*cacheFile)
+ err = state.LoadCache(*cacheFile, *buildCache)
if err != nil {
return err
}
@@ -89,19 +91,25 @@ func run() error {
return fmt.Errorf("parsing 'target': %w", err)
}
- c, err := imap.Connect(imapUrl)
- if err != nil {
- return err
- }
+ var c *imap.Client
+ if !*dryRun && !*buildCache {
+ if c, err = imap.Connect(imapUrl); err != nil {
+ return err
+ }
- defer c.Disconnect()
+ defer c.Disconnect()
+ }
- state.ForeachGo(func(f *feed.Feed) {
- processFeed(f, cfg, c)
- })
+ if !*buildCache {
+ state.ForeachGo(func(f *feed.Feed) {
+ processFeed(f, cfg, c, *dryRun)
+ })
+ }
- if err = state.StoreCache(*cacheFile); err != nil {
- return err
+ if !*dryRun {
+ if err = state.StoreCache(*cacheFile); err != nil {
+ return err
+ }
}
return nil
umann2-46/+58 2008-07-08Updated German translationRené 'Necoro' Neumann2-1013/+994 2008-07-08Removed the USE_CATAPULT stuffRené 'Necoro' Neumann3-13/+6 2008-07-08Removed catapultRené 'Necoro' Neumann3-427/+0 2008-07-08Added the reload_portage pluginRené 'Necoro' Neumann1-1/+1 2008-07-08Added the reload_portage pluginRené 'Necoro' Neumann2-4/+36 2008-07-08Very basic documentationRené 'Necoro' Neumann1-57/+16 2008-07-08Documented the plugin moduleRené 'Necoro' Neumann2-32/+229 2008-07-04Ported remaining pluginsRené 'Necoro' Neumann6-89/+100 2008-07-04Removed lxml version in error stringRené 'Necoro' Neumann1-2/+1 2008-07-04Removed lxml version in error stringRené 'Necoro' Neumann1-3/+1 2008-07-04Ignore errors on plugin loadingRené 'Necoro' Neumann1-0/+6 2008-07-04Added ability to install missing plugin depsRené 'Necoro' Neumann3-95/+126 2008-07-04Fixed find_best_match for <portage-2.1.5René 'Necoro' Neumann1-2/+2 2008-07-04Some more dependency awarenessRené 'Necoro' Neumann5-23/+59 2008-07-03Some window refinementRené 'Necoro' Neumann1-109/+126 2008-07-03Removed XSD_LOCATION -- as there is no more xsd ;)René 'Necoro' Neumann2-5/+1 2008-07-03Updated setup.py to install the correct set of pluginsRené 'Necoro' Neumann1-3/+2 2008-07-03Ported etc-proposals pluginRené 'Necoro' Neumann3-50/+43 2008-07-03Ported gpytage pluginRené 'Necoro' Neumann2-16/+14 2008-07-03Ported Notify pluginRené 'Necoro' Neumann4-37/+51 2008-07-03Remove xsd and -x cmdline optionRené 'Necoro' Neumann2-107/+1 2008-07-03Ported completelyRené 'Necoro' Neumann3-548/+54 2008-07-03Should show dependencies nowRené 'Necoro' Neumann2-82/+128 2008-07-03Use __slots__ for the PkgData class to save memoryRené 'Necoro' Neumann1-2/+3 2008-07-03New plugin system - first hackRené 'Necoro' Neumann2-420/+683 2008-06-30Now the new design is able to do the same as the old oneRené 'Necoro' Neumann3-168/+182 2008-06-30First draft of the new plugin windowRené 'Necoro' Neumann1-8/+172 2008-06-30Added stuff to plugin.pyRené 'Necoro' Neumann1-2/+24 2008-06-30Beautified some dialogsRené 'Necoro' Neumann1-6/+8 2008-06-30Only add a package to mergequeue if everything went fineRené 'Necoro' Neumann1-1/+1 2008-06-26Removed '__find_resolved_unresolved' as it is quite useless.René 'Necoro' Neumann3-53/+29 2008-06-26Added very basic set queryingRené 'Necoro' Neumann3-0/+27 2008-06-25Now load 22 versions when running the correct portageRené 'Necoro' Neumann4-8/+18 2008-06-25Added Package_22 and System_22René 'Necoro' Neumann4-5/+63