Tizen 2.1 base
[apps/core/preloaded/print-service.git] / drvopt / drvopt.go
1 /*
2 *       Printservice
3 *
4 * Copyright 2012  Samsung Electronics Co., Ltd
5
6 * Licensed under the Flora License, Version 1.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9
10 * http://floralicense.org/license/
11
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 */
19
20 package main
21
22 import (
23         "./drv"
24         "flag"
25         "fmt"
26         "os"
27         "runtime/pprof"
28 )
29
30 var (
31         infile    string
32         outfile   string
33         show_help bool
34         id        string
35         cpuprofile string
36         memprofile string
37 )
38
39 func init() {
40         flag.StringVar(&infile, "i", "ppdi.drv", "input drv file")
41         flag.StringVar(&outfile, "o", "stripped.drv", "output file")
42         flag.StringVar(&cpuprofile, "p", "", "write cpu profile to file")
43         flag.StringVar(&memprofile, "m", "", "write memory profile to this file")
44 }
45
46 func main() {
47         flag.Parse()
48
49         if cpuprofile != "" {
50         f, err := os.Create(cpuprofile)
51         if err != nil {
52             fmt.Print(err)
53         }
54         pprof.StartCPUProfile(f)
55         defer pprof.StopCPUProfile()
56     }
57     
58     if memprofile != "" {
59         f, err := os.Create(memprofile)
60         if err != nil {
61             fmt.Print(err)
62         }
63         pprof.WriteHeapProfile(f)
64         f.Close()
65     }
66     
67         drv, err := drv.NewDrv(infile)
68         if err != nil {
69                 fmt.Println(err)
70                 return
71         }
72
73         fd, err := os.Create(outfile)
74         if err != nil {
75                 fmt.Println(err)
76                 return
77         }
78         defer fd.Close()
79         
80         _, err = fd.WriteString(drv.String())
81         if err != nil {
82                 fmt.Println(err)
83                 return
84         }
85
86         return
87 }