forked from vieter-v/vieter
				
			Made sure unix value is calculated
							parent
							
								
									2942793f40
								
							
						
					
					
						commit
						65d6aae701
					
				| 
						 | 
				
			
			@ -3,6 +3,7 @@ module cron
 | 
			
		|||
import git
 | 
			
		||||
import datatypes
 | 
			
		||||
import time
 | 
			
		||||
import rand
 | 
			
		||||
 | 
			
		||||
struct ScheduledBuild {
 | 
			
		||||
	repo      git.GitRepo
 | 
			
		||||
| 
						 | 
				
			
			@ -14,42 +15,19 @@ fn (r1 ScheduledBuild) < (r2 ScheduledBuild) bool {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
pub fn cron(conf Config) ? {
 | 
			
		||||
	// mut queue := datatypes.MinHeap<ScheduledBuild>{}
 | 
			
		||||
	// repos_map := git.get_repos(conf.address, conf.api_key) ?
 | 
			
		||||
	mut queue := datatypes.MinHeap<time.Time>{}
 | 
			
		||||
 | 
			
		||||
	// for _, repo in repos_map {
 | 
			
		||||
	// 	scheduled := ScheduledBuild{
 | 
			
		||||
	// 		repo: repo
 | 
			
		||||
	// 		timestamp: 25
 | 
			
		||||
	// 	}
 | 
			
		||||
	for _ in 0..5000 {
 | 
			
		||||
		minute := rand.int_in_range(0, 60) ?
 | 
			
		||||
		hour := rand.int_in_range(0, 23) ?
 | 
			
		||||
		ce := parse_expression('$minute $hour') ?
 | 
			
		||||
 | 
			
		||||
	// 	queue.insert(scheduled)
 | 
			
		||||
	// }
 | 
			
		||||
 | 
			
		||||
	// println(queue)
 | 
			
		||||
	// exp := '10/2 5 *'
 | 
			
		||||
	// println(parse_expression(exp) ?)
 | 
			
		||||
	ce := parse_expression('0 35 */2') ?
 | 
			
		||||
	println(ce)
 | 
			
		||||
	// ce := CronExpression{
 | 
			
		||||
	// 	minutes: [0]
 | 
			
		||||
	// 	hours: [3]
 | 
			
		||||
	// 	days: [1, 2, 3, 4, 5, 6]
 | 
			
		||||
	// 	months: [1, 2]
 | 
			
		||||
	// }
 | 
			
		||||
	mut t := time.Time{
 | 
			
		||||
		year: 2022
 | 
			
		||||
		month: 12
 | 
			
		||||
		minute: 9
 | 
			
		||||
		hour: 13
 | 
			
		||||
		day: 12
 | 
			
		||||
		t := ce.next_from_now() ?
 | 
			
		||||
		// println(t)
 | 
			
		||||
		queue.insert(t)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// mut t := time.now()
 | 
			
		||||
	println(t)
 | 
			
		||||
 | 
			
		||||
	for _ in 1 .. 25 {
 | 
			
		||||
		t = ce.next(t) ?
 | 
			
		||||
		println(t)
 | 
			
		||||
	for queue.len() > 0 {
 | 
			
		||||
		println(queue.pop() ?)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -101,13 +101,13 @@ pub fn (ce &CronExpression) next(ref time.Time) ?time.Time {
 | 
			
		|||
		year++
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return time.Time{
 | 
			
		||||
	return time.new_time(time.Time{
 | 
			
		||||
		year: year
 | 
			
		||||
		month: month
 | 
			
		||||
		day: day
 | 
			
		||||
		minute: minute
 | 
			
		||||
		hour: hour
 | 
			
		||||
	}
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn (ce &CronExpression) next_from_now() ?time.Time {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue