Pull.java
package jasper.component.cron;
import jakarta.annotation.PostConstruct;
import jasper.component.Replicator;
import jasper.domain.Ref;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import static jasper.domain.proj.HasOrigin.formatOrigin;
import static jasper.domain.proj.HasOrigin.subOrigin;
import static jasper.plugin.Origin.getOrigin;
@Component("cronPull")
public class Pull implements Cron.CronRunner {
private static final Logger logger = LoggerFactory.getLogger(Pull.class);
@Autowired
Cron cron;
@Autowired
Replicator replicator;
@PostConstruct
void init() {
cron.addCronTag("+plugin/origin/pull", this);
}
public void run(Ref remote) {
var config = getOrigin(remote);
var localOrigin = subOrigin(remote.getOrigin(), config.getLocal());
logger.info("{} Pulling origin ({}) {}: {}", remote.getOrigin(), formatOrigin(localOrigin), remote.getTitle(), remote.getUrl());
replicator.pull(remote);
logger.info("{} Finished pulling origin ({}) {}: {}", remote.getOrigin(), formatOrigin(localOrigin), remote.getTitle(), remote.getUrl());
}
}