KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > armedbear > lisp > machine_version


1 /*
2  * machine_version.java
3  *
4  * Copyright (C) 2004 Peter Graves
5  * $Id: machine_version.java,v 1.1 2004/02/27 17:19:59 piso Exp $
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20  */

21
22 package org.armedbear.lisp;
23
24 import java.io.BufferedReader JavaDoc;
25 import java.io.FileInputStream JavaDoc;
26 import java.io.IOException JavaDoc;
27 import java.io.InputStreamReader JavaDoc;
28
29 // ### machine-version
30
public final class machine_version extends Primitive0
31 {
32     private machine_version()
33     {
34         super("machine-version");
35     }
36
37     public LispObject execute() throws ConditionThrowable
38     {
39         String JavaDoc osName = System.getProperty("os.name");
40         if (osName != null && osName.toLowerCase().startsWith("linux")) {
41             try {
42                 FileInputStream JavaDoc in = new FileInputStream JavaDoc("/proc/cpuinfo");
43                 if (in != null) {
44                     BufferedReader JavaDoc reader =
45                         new BufferedReader JavaDoc(new InputStreamReader JavaDoc(in));
46                     try {
47                         String JavaDoc s;
48                         while ((s = reader.readLine()) != null) {
49                             int start = s.indexOf("model name");
50                             if (start >= 0) {
51                                 start = s.indexOf(':', start);
52                                 if (start >= 0) {
53                                     return new SimpleString(s.substring(start + 1).trim());
54                                 }
55                             }
56                         }
57                     }
58                     finally {
59                         reader.close();
60                     }
61                 }
62             }
63             catch (IOException JavaDoc e) {}
64         }
65         return NIL;
66     }
67
68     private static final Primitive0 MACHINE_VERSION = new machine_version();
69 }
70
Popular Tags