This file is indexed.

/usr/bin/spectoascii is in python-sardana 1.2.0-2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#! /usr/bin/python

##############################################################################
##
## This file is part of Sardana
##
## http://www.tango-controls.org/static/sardana/latest/doc/html/index.html
##
## Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
## 
## Sardana is free software: you can redistribute it and/or modify
## it under the terms of the GNU Lesser General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
## 
## Sardana is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU Lesser General Public License for more details.
## 
## You should have received a copy of the GNU Lesser General Public License
## along with Sardana.  If not, see <http://www.gnu.org/licenses/>.
##
##############################################################################

'''
Script for extracting "scan tables" from Sardana Spec files into single-scan tab-separated ASCII tables.
When data from multiple scans are extracted from a file, each table is stored in a different file.
The output files for a given input file are stored in a directory whose name matches the input scan ID

Usage:
python spectoascii.py <specfile> [<scan_ID_1> [<scan_ID_2>] ...]  

If no scan IDs are provided, all scans from the given Spec file will be extracted.

Note that this is not a generic Spec conversor. Spec files created by means other than the Sardana 
SPEC_FileRecorder may not be converted properly.
 
'''


import sys,os

def main():
    if len(sys.argv) > 1:
        fname = sys.argv[1]
    else:
        print "Usage:\nspectoascii <specfile> [<scan_ID_1> [<scan_ID_2>] ...] "
        sys.exit(1)
        
    scanids = sys.argv[2:] or None
    
    f = open(fname,'r')
    s = f.read()
    f.close()
    
    dirname,ext = os.path.splitext(fname)
    try:
        os.makedirs(dirname)
    except:
        print 'Cannot create dir "%s". Skipping.'%dirname
    
    for scan in s.split('\n\n'):
        lines = scan.split('\n')
        if not lines[0].startswith('#S '):
            continue
        scan_name = lines[0].split()[1]
        if scanids is None or scan_name in scanids: #extract only selected ids
            ofname = os.path.join(dirname,"%s.dat"%scan_name)
            print "Extracting %s:%s to %s"%(fname,scan_name,ofname)
            try:
                ofile = open(ofname,'w')
            except:
                print 'Cannot create file "%s". Skipping.'%ofname
                continue
            for line in lines[1:]:
                if line.startswith('#L '):
                    ofile.write('\t'.join(line[3:].split('  '))+'\n')
                elif line.startswith('#'):
                    continue
                else:
                    ofile.write('\t'.join(line.split())+'\n')
            ofile.close()


if __name__ == "__main__":
    main()