Adding import from crontab
							parent
							
								
									78f133a075
								
							
						
					
					
						commit
						285bcd1f25
					
				
							
								
								
									
										1
									
								
								app.js
								
								
								
								
							
							
						
						
									
										1
									
								
								app.js
								
								
								
								
							| 
						 | 
				
			
			@ -34,6 +34,7 @@ app.set('port', (process.env.PORT || 8000));
 | 
			
		|||
 | 
			
		||||
app.get(routes.root, function(req, res) {
 | 
			
		||||
	// get all the crontabs
 | 
			
		||||
	crontab.reload_db();
 | 
			
		||||
	crontab.crontabs( function(docs){
 | 
			
		||||
		res.render('index', {
 | 
			
		||||
			routes : JSON.stringify(routes),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										37
									
								
								crontab.js
								
								
								
								
							
							
						
						
									
										37
									
								
								crontab.js
								
								
								
								
							| 
						 | 
				
			
			@ -133,16 +133,35 @@ exports.get_env = function(){
 | 
			
		|||
exports.import_crontab = function(){
 | 
			
		||||
	exec("crontab -l", function(error, stdout, stderr){
 | 
			
		||||
		var lines = stdout.split("\n");
 | 
			
		||||
		lines.forEach(function(line){
 | 
			
		||||
			/*
 | 
			
		||||
				trim the spaces at edges
 | 
			
		||||
				split the line based of space and tab
 | 
			
		||||
				remove empty splits
 | 
			
		||||
				If the first character is @
 | 
			
		||||
 | 
			
		||||
			*/
 | 
			
		||||
			//if(line.indexOf("@")
 | 
			
		||||
		var namePrefix = new Date().getTime();
 | 
			
		||||
 | 
			
		||||
		lines.forEach(function(line, index){
 | 
			
		||||
			var regex = /^((\@[a-zA-Z]+\s)|(([^\s]+)\s([^\s]+)\s([^\s]+)\s([^\s]+)\s([^\s]+)\s))/;
 | 
			
		||||
			var command = line.replace(regex, '').trim();
 | 
			
		||||
			var schedule = line.replace(command, '').trim();
 | 
			
		||||
			
 | 
			
		||||
			if(command && schedule){
 | 
			
		||||
				var name = namePrefix + '_' + index;
 | 
			
		||||
 | 
			
		||||
				db.crontabs.findOne({ command: command, schedule: schedule }, function(err, doc) {
 | 
			
		||||
					if(err) {
 | 
			
		||||
						throw err;
 | 
			
		||||
					}
 | 
			
		||||
					if(!doc){
 | 
			
		||||
						exports.create_new(name, command, null, null, schedule, null);		
 | 
			
		||||
					}
 | 
			
		||||
					else{
 | 
			
		||||
						doc.command = command;
 | 
			
		||||
						doc.schedule = schedule;
 | 
			
		||||
						exports.update(doc);
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		})
 | 
			
		||||
		console.log(stdout);
 | 
			
		||||
		//console.log(stdout);
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,6 +53,16 @@ function setCrontab(){
 | 
			
		|||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function getCrontab(){
 | 
			
		||||
	messageBox("<p> Do you want to get the crontab file? </p>", "Confirm crontab retrieval", null, null, function(){
 | 
			
		||||
		$.get(routes.import_crontab, { "env_vars": $("#env_vars").val() }, function(){
 | 
			
		||||
			// TODO show only if success
 | 
			
		||||
			infoMessageBox("Successfuly got the crontab file!","Information");
 | 
			
		||||
			location.reload();
 | 
			
		||||
		});
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function editJob(_id){
 | 
			
		||||
	var job = null;
 | 
			
		||||
	crontabs.forEach(function(crontab){
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,6 +35,7 @@
 | 
			
		|||
	<a class="btn btn-warning" onclick="import_db()"><span class="glyphicon glyphicon-import" aria-hidden="true"></span> Import</a>
 | 
			
		||||
	<a class="btn btn-warning" href="<%= JSON.parse(routes).export %>"><span class="glyphicon glyphicon-download-alt" aria-hidden="true"></span> Export</a>
 | 
			
		||||
	<!--<a class="btn btn-info" onclick="import_crontab()"><span class="glyphicon glyphicon-import" aria-hidden="true"></span> Import from crontab</a>-->
 | 
			
		||||
	<a class="btn btn-success" onclick="getCrontab();"><span class="glyphicon glyphicon-save" aria-hidden="true"></span> Get from crontab</a>
 | 
			
		||||
	<a class="btn btn-success" onclick="setCrontab();"><span class="glyphicon glyphicon-save" aria-hidden="true"></span> Save to crontab</a>
 | 
			
		||||
	<br/>
 | 
			
		||||
	<br/>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue