OSDN Git Service

add AVM2 instructions
[happyabc/happyabc.git] / link / cmdOpt.ml
1 open Base
2 open OptParse
3
4 class type t = object
5   method color:int*int*int
6   method size:int*int
7   method main_class:string
8   method output:string
9   method use_network:bool
10 end
11
12 module M = OptParseUtil.Make(
13   struct
14     let v =
15       OptParser.make
16         ~version:Config.version
17         ~usage:"habc-link [options] <file>" ()
18   end)
19 open M
20
21 let width =
22   int_option
23     ~default:(20 * 800)
24     ~metavar:"<width>"
25     ~short_name:'W'
26     ~long_name:"width"
27     ~help:"Set stage width by twips" ()
28
29 let height =
30   int_option
31     ~default:(20 * 600)
32     ~metavar:"<height>"
33     ~short_name:'H'
34     ~long_name:"height"
35     ~help:"Set stage height by pixel" ()
36
37 let main_class =
38   str_option
39     ~default:"boot.Boot"
40     ~metavar:"<main_class>"
41     ~short_name:'m'
42     ~long_name:"main"
43     ~help:"Set main class" ()
44
45 let output =
46   str_option
47     ~default:"a.swf"
48     ~metavar:"<output swf>"
49     ~short_name:'o'
50     ~long_name:"output"
51     ~help:"Set output name" ()
52
53 let red =
54   int_option
55     ~default:134
56     ~metavar:"<red>"
57     ~long_name:"red"
58     ~help:"stage background color(red)" ()
59
60 let green =
61   int_option
62     ~default:156
63     ~metavar:"<green>"
64     ~long_name:"green"
65     ~help:"stage background color(green)" ()
66
67 let blue =
68   int_option
69     ~default:167
70     ~metavar:"<blue>"
71     ~long_name:"blue"
72     ~help:"stage background color(blue)" ()
73
74 let use_network =
75   bool_option
76     ~default:false
77     ~long_name:"use-network"
78     ~help:"Set use_network option" ()
79
80 let parse argv =
81   let inputs =
82     OptParser.parse ~first:1 opt_parser argv in
83     inputs,{|
84       color       = (Opt.get red, Opt.get green, Opt.get blue);
85       main_class  = Opt.get main_class;
86       size        = (Opt.get width, Opt.get height);
87       output      = Opt.get output;
88       use_network = Opt.get use_network
89     |}
90
91 let parse_argv () =
92   parse Sys.argv