From 91ade494130ab7d58bf6d796b2ea05fbad020891 Mon Sep 17 00:00:00 2001 From: "jiil.hyoun" Date: Sat, 25 Aug 2012 17:40:48 +0900 Subject: [PATCH] [Title] add multi argument value check [Type] Enhancement [Module] Toolchain / [Priority] Minor [Jira#] [Redmine#] [Problem] [Cause] [Solution] [TestCase] Change-Id: I07c57ad89bef31c6862481ce886bd8770982606f --- src/build_server/BuildClientOptionParser.rb | 11 ++++++++++- src/build_server/BuildServerOptionParser.rb | 8 +++++++- src/common/utils.rb | 4 ++++ src/pkg_server/serverOptParser.rb | 8 ++++++++ 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/build_server/BuildClientOptionParser.rb b/src/build_server/BuildClientOptionParser.rb index b757465..005db89 100644 --- a/src/build_server/BuildClientOptionParser.rb +++ b/src/build_server/BuildClientOptionParser.rb @@ -26,7 +26,9 @@ Contributors: - S-Core Co., Ltd =end +$LOAD_PATH.unshift File.dirname(__FILE__)+"/src/common" require 'optparse' +require 'utils' def option_error_check( options ) case options[:cmd] @@ -79,9 +81,12 @@ def option_error_check( options ) raise ArgumentError, "Input is incorrect : #{options[:cmd]}" end + if ARGV.length > 1 then + raise ArgumentError, "Unknown argument value : #{ARGV[1]}" + end end -def option_parse +def option_parse options = {} banner = "Requiest service to build-server command-line tool." + "\n" \ + "\n" + "Usage: build-cli [OPTS] or build-cli -h" + "\n" \ @@ -123,6 +128,10 @@ def option_parse options[:os] = nil opts.on( '-o', '--os ', 'target operating system: ubuntu-32/ubuntu-64/windows-32/windows-64/macos-64' ) do |os| + if not Utils.multi_argument_test( os, "," ) then + puts "OS variable parsing error : #{os}" + exit + end options[:os] = os end diff --git a/src/build_server/BuildServerOptionParser.rb b/src/build_server/BuildServerOptionParser.rb index 6f496a7..c641c22 100644 --- a/src/build_server/BuildServerOptionParser.rb +++ b/src/build_server/BuildServerOptionParser.rb @@ -26,7 +26,9 @@ Contributors: - S-Core Co., Ltd =end +$LOAD_PATH.unshift File.dirname(__FILE__)+"/src/common" require 'optparse' +require 'utils' def option_error_check( options ) case options[:cmd] @@ -147,7 +149,11 @@ def option_parse end options[:os] = nil - opts.on( '-o', '--os ', 'ex) linux,windows' ) do|os| + opts.on( '-o', '--os ', 'ex) linux-32,windows-32' ) do|os| + if not Utils.multi_argument_test( os, "," ) then + puts "OS variable parsing error : #{os}" + exit + end options[:os] = os end diff --git a/src/common/utils.rb b/src/common/utils.rb index a71f292..377641c 100644 --- a/src/common/utils.rb +++ b/src/common/utils.rb @@ -433,6 +433,10 @@ class Utils return nil end + def Utils.multi_argument_test( arg, seperator ) + return ( not arg.end_with? seperator and not arg.split( seperator ).select{|x| x.empty?}.length > 0 ) + end + if defined?(HOST_OS).nil? then HOST_OS = Utils.identify_current_OS() diff --git a/src/pkg_server/serverOptParser.rb b/src/pkg_server/serverOptParser.rb index 753ea89..1590466 100644 --- a/src/pkg_server/serverOptParser.rb +++ b/src/pkg_server/serverOptParser.rb @@ -163,6 +163,10 @@ def option_parse end opts.on( '-P', '--pkgs ', 'package file path list' ) do|pkgs| + if not Utils.multi_argument_test( pkgs, "," ) then + puts "Package variable parsing error : #{pkgs}" + exit + end list = pkgs.tr(" \t","").split(",") list.each do |l| if l.start_with? "~" then l = Utils::HOME + l.delete("~") end @@ -171,6 +175,10 @@ def option_parse end opts.on( '-s', '--snapshot ', 'a snapshot name or snapshot list' ) do|snaplist| + if not Utils.multi_argument_test( snaplist, "," ) then + puts "Snapshot variable parsing error : #{snaplist}" + exit + end options[:snaps] = snaplist.split(",") end -- 2.34.1