Remove nix-log2xml
This commit is contained in:
		
							parent
							
								
									41633f9f73
								
							
						
					
					
						commit
						697e0b3a6f
					
				
					 5 changed files with 0 additions and 296 deletions
				
			
		
							
								
								
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -68,9 +68,6 @@ Makefile.config
 | 
			
		|||
# /src/nix-instantiate/
 | 
			
		||||
/src/nix-instantiate/nix-instantiate
 | 
			
		||||
 | 
			
		||||
# /src/nix-log2xml/
 | 
			
		||||
/src/nix-log2xml/nix-log2xml
 | 
			
		||||
 | 
			
		||||
# /src/nix-store/
 | 
			
		||||
/src/nix-store/nix-store
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -12,7 +12,6 @@ makefiles = \
 | 
			
		|||
  src/nix-daemon/local.mk \
 | 
			
		||||
  src/nix-collect-garbage/local.mk \
 | 
			
		||||
  src/download-via-ssh/local.mk \
 | 
			
		||||
  src/nix-log2xml/local.mk \
 | 
			
		||||
  src/nix-prefetch-url/local.mk \
 | 
			
		||||
  perl/local.mk \
 | 
			
		||||
  scripts/local.mk \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +0,0 @@
 | 
			
		|||
programs += nix-log2xml
 | 
			
		||||
 | 
			
		||||
nix-log2xml_DIR := $(d)
 | 
			
		||||
 | 
			
		||||
nix-log2xml_SOURCES := $(d)/log2xml.cc
 | 
			
		||||
| 
						 | 
				
			
			@ -1,201 +0,0 @@
 | 
			
		|||
#include <vector>
 | 
			
		||||
#include <iostream>
 | 
			
		||||
#include <cstdio>
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
struct Decoder
 | 
			
		||||
{
 | 
			
		||||
    enum { stTop, stEscape, stCSI } state;
 | 
			
		||||
    string line;
 | 
			
		||||
    bool inHeader;
 | 
			
		||||
    int level;
 | 
			
		||||
    vector<int> args;
 | 
			
		||||
    bool newNumber;
 | 
			
		||||
    int priority;
 | 
			
		||||
    bool ignoreLF;
 | 
			
		||||
    int lineNo, charNo;
 | 
			
		||||
    bool warning;
 | 
			
		||||
    bool error;
 | 
			
		||||
 | 
			
		||||
    Decoder()
 | 
			
		||||
    {
 | 
			
		||||
        state = stTop;
 | 
			
		||||
        line = "";
 | 
			
		||||
        inHeader = false;
 | 
			
		||||
        level = 0;
 | 
			
		||||
        priority = 1;
 | 
			
		||||
        ignoreLF = false;
 | 
			
		||||
        lineNo = 1;
 | 
			
		||||
        charNo = 0;
 | 
			
		||||
        warning = false;
 | 
			
		||||
        error = false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void pushChar(char c);
 | 
			
		||||
 | 
			
		||||
    void finishLine();
 | 
			
		||||
 | 
			
		||||
    void decodeFile(istream & st);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Decoder::pushChar(char c)
 | 
			
		||||
{
 | 
			
		||||
    if (c == '\n') {
 | 
			
		||||
        lineNo++;
 | 
			
		||||
        charNo = 0;
 | 
			
		||||
    } else charNo++;
 | 
			
		||||
    
 | 
			
		||||
    switch (state) {
 | 
			
		||||
        
 | 
			
		||||
        case stTop:
 | 
			
		||||
            if (c == '\e') {
 | 
			
		||||
                state = stEscape;
 | 
			
		||||
            } else if (c == '\n' && !ignoreLF) {
 | 
			
		||||
                finishLine();
 | 
			
		||||
            } else line += c;
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case stEscape:
 | 
			
		||||
            if (c == '[') {
 | 
			
		||||
                state = stCSI;
 | 
			
		||||
                args.clear();
 | 
			
		||||
                newNumber = true;
 | 
			
		||||
            } else
 | 
			
		||||
                state = stTop; /* !!! wrong */
 | 
			
		||||
            break;
 | 
			
		||||
 | 
			
		||||
        case stCSI:
 | 
			
		||||
            if (c >= 0x40 && c != 0x7e) {
 | 
			
		||||
                state = stTop;
 | 
			
		||||
                switch (c) {
 | 
			
		||||
                    case 'p':
 | 
			
		||||
                        if (line.size()) finishLine();
 | 
			
		||||
                        level++;
 | 
			
		||||
                        inHeader = true;
 | 
			
		||||
                        cout << "<nest>" << endl;
 | 
			
		||||
                        priority = args.size() >= 1 ? args[0] : 1;
 | 
			
		||||
                        break;
 | 
			
		||||
                    case 'q':
 | 
			
		||||
                        if (line.size()) finishLine();
 | 
			
		||||
                        if (level > 0) {
 | 
			
		||||
                            level--;
 | 
			
		||||
                            cout << "</nest>" << endl;
 | 
			
		||||
                        } else
 | 
			
		||||
                            cerr << "not enough nesting levels at line "
 | 
			
		||||
                                 << lineNo << ", character " << charNo  << endl;
 | 
			
		||||
                        break;
 | 
			
		||||
                    case 's':
 | 
			
		||||
                        if (line.size()) finishLine();
 | 
			
		||||
                        priority = args.size() >= 1 ? args[0] : 1;
 | 
			
		||||
                        break;
 | 
			
		||||
                    case 'a':
 | 
			
		||||
                        ignoreLF = true;
 | 
			
		||||
                        break;
 | 
			
		||||
                    case 'b':
 | 
			
		||||
                        ignoreLF = false;
 | 
			
		||||
                        break;
 | 
			
		||||
                    case 'e':
 | 
			
		||||
                        error = true;
 | 
			
		||||
                        break;
 | 
			
		||||
                    case 'w':
 | 
			
		||||
                        warning = true;
 | 
			
		||||
                        break;
 | 
			
		||||
                }
 | 
			
		||||
            } else if (c >= '0' && c <= '9') {
 | 
			
		||||
                int n = 0;
 | 
			
		||||
                if (!newNumber) {
 | 
			
		||||
                    n = args.back() * 10;
 | 
			
		||||
                    args.pop_back();
 | 
			
		||||
                }
 | 
			
		||||
                n += c - '0';
 | 
			
		||||
                args.push_back(n);
 | 
			
		||||
            }
 | 
			
		||||
            break;
 | 
			
		||||
            
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Decoder::finishLine()
 | 
			
		||||
{
 | 
			
		||||
    string storeDir = "/nix/store/";
 | 
			
		||||
    int sz = storeDir.size();
 | 
			
		||||
    string tag = inHeader ? "head" : "line";
 | 
			
		||||
    cout << "<" << tag;
 | 
			
		||||
    if (priority != 1) cout << " priority='" << priority << "'";
 | 
			
		||||
    if (warning) cout << " warning='1'";
 | 
			
		||||
    if (error) cout << " error='1'";
 | 
			
		||||
    cout << ">";
 | 
			
		||||
 | 
			
		||||
    for (unsigned int i = 0; i < line.size(); i++) {
 | 
			
		||||
 | 
			
		||||
        if (line[i] == '<') cout << "<";
 | 
			
		||||
        else if (line[i] == '&') cout << "&";
 | 
			
		||||
        else if (line[i] == '\r') ; /* ignore carriage return */
 | 
			
		||||
        else if (line[i] == '\n') cout << "\n";
 | 
			
		||||
        else if (line[i] >= 0 && line[i] < 32 && line[i] != 9) cout << "�";
 | 
			
		||||
        else if (i + sz + 33 < line.size() &&
 | 
			
		||||
            string(line, i, sz) == storeDir &&
 | 
			
		||||
            line[i + sz + 32] == '-')
 | 
			
		||||
        {
 | 
			
		||||
            int j = i + sz + 32;
 | 
			
		||||
            /* skip name */
 | 
			
		||||
            while (!strchr("/\n\r\t ()[]:;?<>", line[j])) j++;
 | 
			
		||||
            int k = j;
 | 
			
		||||
            while (!strchr("\n\r\t ()[]:;?<>", line[k])) k++;
 | 
			
		||||
            // !!! escaping
 | 
			
		||||
            cout << "<storeref>"
 | 
			
		||||
                 << "<storedir>"
 | 
			
		||||
                 << string(line, i, sz)
 | 
			
		||||
                 << "</storedir>"
 | 
			
		||||
                 << "<hash>"
 | 
			
		||||
                 << string(line, i + sz, 32)
 | 
			
		||||
                 << "</hash>"
 | 
			
		||||
                 << "<name>"
 | 
			
		||||
                 << string(line, i + sz + 32, j - (i + sz + 32))
 | 
			
		||||
                 << "</name>"
 | 
			
		||||
                 << "<path>"
 | 
			
		||||
                 << string(line, j, k - j)
 | 
			
		||||
                 << "</path>"
 | 
			
		||||
                 << "</storeref>";
 | 
			
		||||
            i = k - 1;
 | 
			
		||||
        } else cout << line[i];
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    cout << "</" << tag << ">" << endl;
 | 
			
		||||
    line = "";
 | 
			
		||||
    inHeader = false;
 | 
			
		||||
    priority = 1;
 | 
			
		||||
    warning = false;
 | 
			
		||||
    error = false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void Decoder::decodeFile(istream & st)
 | 
			
		||||
{
 | 
			
		||||
    int c;
 | 
			
		||||
    
 | 
			
		||||
    cout << "<logfile>" << endl;
 | 
			
		||||
    
 | 
			
		||||
    while ((c = st.get()) != EOF) {
 | 
			
		||||
        pushChar(c);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (line.size()) finishLine();
 | 
			
		||||
 | 
			
		||||
    while (level--) cout << "</nest>" << endl;
 | 
			
		||||
    
 | 
			
		||||
    cout << "</logfile>" << endl;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int main(int argc, char * * argv)
 | 
			
		||||
{
 | 
			
		||||
    Decoder dec;
 | 
			
		||||
    dec.decodeFile(cin);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,86 +0,0 @@
 | 
			
		|||
body {
 | 
			
		||||
    font-family: sans-serif;
 | 
			
		||||
    background: white;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ul.nesting, ul.toplevel {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.toplevel {
 | 
			
		||||
    list-style-type: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.nesting li.line, ul.nesting li.lastline {
 | 
			
		||||
    position: relative;
 | 
			
		||||
    list-style-type: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.nesting li.line {
 | 
			
		||||
    padding-left: 1.1em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ul.nesting li.lastline {
 | 
			
		||||
    padding-left: 1.2em; // for the 0.1em border-left in .lastline > .lineconn
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
li.line {
 | 
			
		||||
    border-left: 0.1em solid #6185a0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
li.line > span.lineconn, li.lastline > span.lineconn {
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    height: 0.65em;
 | 
			
		||||
    left: 0em;
 | 
			
		||||
    width: 1em;
 | 
			
		||||
    border-bottom: 0.1em solid #6185a0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
li.lastline > span.lineconn {
 | 
			
		||||
    border-left: 0.1em solid #6185a0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
em.storeref {
 | 
			
		||||
    color: #500000;
 | 
			
		||||
    position: relative; 
 | 
			
		||||
    width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
em.storeref:hover {
 | 
			
		||||
    background-color: #eeeeee;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
*.popup {
 | 
			
		||||
    display: none;
 | 
			
		||||
/*    background: url('http://losser.st-lab.cs.uu.nl/~mbravenb/menuback.png') repeat; */
 | 
			
		||||
    background: #ffffcd;
 | 
			
		||||
    border: solid #555555 1px;
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: 0em;
 | 
			
		||||
    left: 0em;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    z-index: 100;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
em.storeref:hover span.popup {
 | 
			
		||||
    display: inline;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.toggle {
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.showTree, .hideTree {
 | 
			
		||||
    font-family: monospace;
 | 
			
		||||
    font-size: larger;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.error {
 | 
			
		||||
    color: #ff0000;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue