Информативный вывод при вызове status
This commit is contained in:
		
							parent
							
								
									aa4260cdb9
								
							
						
					
					
						commit
						c388d01a2f
					
				
					 1 changed files with 21 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -44,6 +44,22 @@ class Snag {
 | 
			
		|||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private string gitStatus(string shortStatus, bool formatted = false) {
 | 
			
		||||
		immutable string[string] statusMap = [
 | 
			
		||||
			"??": "Untracked",
 | 
			
		||||
			"A": "Added",
 | 
			
		||||
			"M": "Modified",
 | 
			
		||||
			"D": "Deleted",
 | 
			
		||||
			"R": "Renamed",
 | 
			
		||||
			"C": "Copied",
 | 
			
		||||
			"U": "Unmerged",
 | 
			
		||||
			"T": "Type changed",
 | 
			
		||||
			"!": "Ignored"
 | 
			
		||||
		];
 | 
			
		||||
		string fullStatus = statusMap.get(shortStatus, shortStatus);
 | 
			
		||||
		return formatted && fullStatus.length < 8 ? fullStatus ~ "\t" : fullStatus;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void initialize(bool force) {
 | 
			
		||||
		auto result = execute(_baseCommand ~ ["rev-parse", "--git-dir"]);
 | 
			
		||||
		!force && !result.status &&
 | 
			
		||||
| 
						 | 
				
			
			@ -84,9 +100,11 @@ class Snag {
 | 
			
		|||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		writeln("The following list of files requires backup:");
 | 
			
		||||
		result.output.split('\n').filter!(e => !e.strip.empty).each!((e) {
 | 
			
		||||
			writefln("\t/%s", e.strip.split[1]);
 | 
			
		||||
		});
 | 
			
		||||
		result.output.split('\n')[0..$-1].map!(e =>
 | 
			
		||||
			e.strip.split
 | 
			
		||||
		).each!(e =>
 | 
			
		||||
			writefln("\t%s\t/%s", gitStatus(e[0], true), e[1])
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void create(string comment, string author, string email) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue