From 65847dc7e30f95d5839842f16ade8a802f03e4a1 Mon Sep 17 00:00:00 2001 From: bohung Date: Tue, 9 Mar 2021 11:08:47 +0800 Subject: [PATCH] Auto add sync crontab. --- sync_asia_personal_data.gemspec | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sync_asia_personal_data.gemspec b/sync_asia_personal_data.gemspec index c79c521..453e33b 100644 --- a/sync_asia_personal_data.gemspec +++ b/sync_asia_personal_data.gemspec @@ -2,7 +2,18 @@ $:.push File.expand_path("lib", __dir__) # Maintain your gem's version: require "sync_asia_personal_data/version" - +crontab_sync= `crontab -l|grep 'bundle exec rake sync_asia_personal_plugins:sync'|grep #{Rails.root}` +sync_cron="0 5 * * * /bin/bash -l -c 'cd #{Rails.root} && bundle exec rake sync_asia_personal_plugins:sync > /dev/null'" +crontab_sync_jobs = crontab_sync.split("\n") +if crontab_sync_jobs.count == 0 + %x(CRON="#{sync_cron}" && (crontab -l; echo "$CRON" ) | crontab -) +elsif crontab_sync_jobs.count > 1 + crontab_jobs = `crontab -l` + crontab_sync_jobs[1..-1].each do |s| + crontab_jobs = crontab_jobs.gsub(s,"") + end + %x(CRON="#{crontab_jobs}" && (echo "$CRON" ) | crontab -) +end # Describe your gem and declare its dependencies: Gem::Specification.new do |spec| spec.name = "sync_asia_personal_data"