{"id":23701078,"url":"https://github.com/ehanlin/sbt-script-args-parser","last_synced_at":"2025-09-01T14:35:13.314Z","repository":{"id":31967965,"uuid":"35538047","full_name":"eHanlin/sbt-script-args-parser","owner":"eHanlin","description":null,"archived":false,"fork":false,"pushed_at":"2015-05-18T05:11:32.000Z","size":128,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-12-28T19:03:35.329Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eHanlin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-13T08:45:13.000Z","updated_at":"2015-05-13T09:38:25.000Z","dependencies_parsed_at":"2022-08-24T14:22:33.197Z","dependency_job_id":null,"html_url":"https://github.com/eHanlin/sbt-script-args-parser","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eHanlin%2Fsbt-script-args-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eHanlin%2Fsbt-script-args-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eHanlin%2Fsbt-script-args-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eHanlin%2Fsbt-script-args-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eHanlin","download_url":"https://codeload.github.com/eHanlin/sbt-script-args-parser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239776571,"owners_count":19695128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-30T09:31:50.978Z","updated_at":"2025-02-20T04:27:07.440Z","avatar_url":"https://github.com/eHanlin.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SBT Scala script args parser\n\n### 使用方式 (Usage)\n\n加入依賴 (Append dependency)\n```scala\n/***\n  scalaVersion := \"2.11.6\"\n\n  Resolver.sonatypeRepo(\"releases\")\n  \n  libraryDependencies += \"tw.com.ehanlin\" %% \"sbt-script-args-parser\" % \"0.0.1\"\n*/\n\nimport com.ehanlin.argsParser.ArgsParser\nimport com.ehanlin.argsParser.ArgsParserMethods._\n```\n\n定義傳入參數 (Define the parameters)\n```scala\n//定義開關型的參數 (Define Boolean type parameter)\nval flag : Boolean = *(\"f\") desc \"flag description\"\n\n//定義傳入值型的參數，必須要有預設值 (Define String type parameter, must have a default value)\nval option : String = **(\"option\") desc \"option description\" default \"default value\"\n\n//若所有參數都是開關型的參數，在定義最後一個參數時使用 *!\n//(If all parameters are Boolean type, when defining the last parameter use *!)\nval lastFlag : Boolean = *!(\"l\") desc \"last flag description\"\n\n//若有傳入值型參數，則將想當成預設參數的值入值型參數放在最後一個使用 **! 定義\n//(Defining the last String type parameter use *!, become default parameter)\nval lastOption : String = **(\"lastOption\") desc \"last option description\" default \"default value\"\n```\n\n開關型的參數，開啟 f (Setting Boolean type parameter f is true)\n```shell\nscript.scala *f\n```\n\n開關型的參數，開啟 a,b,c (Setting Boolean type parameters a, b, c are true)\n```shell\nscript.scala *abc\n```\n\n傳入值型的參數，option 值設為 optionValue (Setting String type parameter option is optionValue)\n```\nscript.scala *option optionValue\n```\n\n傳入值型的參數，lastOption 值設為 lastOptionValue (Setting String type parameter lastOption is lastOptionValue)\n```\nscript.scala lastOptionValue\n```\n\n幫助參數，於執行完印出幫助選項後，會強制結束程式 (Help task, after print help, forced end process)\n```shell\nscript.scala *help\n```\n\n### 例子 (Example)\n\nscript.scala\n```scala\n#!/usr/bin/env scalas\n\n/***\n  scalaVersion := \"2.11.6\"\n  \n  resolvers += Resolver.sonatypeRepo(\"snapshots\")\n\n  libraryDependencies ++= Seq(\n    \"org.mongodb\" %% \"casbah\" % \"2.8.1\",\n    \"tw.com.ehanlin\" %% \"sbt-script-args-parser\" % \"0.0.1\"\n  )\n*/\n\nimport com.mongodb.casbah.Imports._\nimport com.mongodb.util.JSON\nimport com.ehanlin.argsParser.ArgsParser\nimport com.ehanlin.argsParser.ArgsParserMethods._\n\n\nimplicit def stringToInt(value : String) = value.toInt\nimplicit def stringToDBObject(value : String) = JSON.parse(value).asInstanceOf[DBObject]\n\n\nimplicit val ap = new ArgsParser(args)\n\nval viewFlag : Boolean =     *(\"v\")       desc \"show log\"\nval debugFlag : Boolean =    *(\"b\")       desc \"show debug\"\nval timeFlag : Boolean =     *(\"t\")       desc \"show timestamp\"\nval durationFlag : Boolean = *(\"d\")       desc \"show run duration\"\nval srcHost : String =      **(\"srcHost\") desc \"source db ip\"   default \"10.13.104.149\"\nval srcPort : Int =         **(\"srcPort\") desc \"source db port\" default \"27017\"\nval srcDb : String =        **(\"srcDb\")   desc \"source db name\" default \"hanlin\"\nval host : String =         **(\"host\")    desc \"db ip\"          default \"127.0.0.1\"\nval port : Int =            **(\"port\")    desc \"db port\"        default \"27017\"\nval db : String =           **(\"db\")      desc \"db name\"        default \"ehanlin_104\"\nval query : DBObject =     **!(\"query\")   desc \"question query\" default \"{}\"\n\n\n\nprintln(s\"srcHost = $srcHost\")\nprintln(s\"srcPort = $srcPort\")\nprintln(s\"srcDb = $srcDb\")\nprintln(s\"host = $host\")\nprintln(s\"port = $port\")\nprintln(s\"db = $db\")\nprintln(s\"query = $query\")\nprintln(s\"viewFlag = $viewFlag\")\nprintln(s\"debugFlag = $debugFlag\")\nprintln(s\"timeFlag = $timeFlag\")\nprintln(s\"durationFlag = $durationFlag\")\n```\n\nrun script\n```shell\n./script.scala *vt *help **srcPort 1234 **srcHost 1.2.3.4 *d '{a:\"a\",b:123}'\n```\n\noutput\n```shell\nsrcHost = 1.2.3.4\nsrcPort = 1234\nsrcDb = hanlin\nhost = 127.0.0.1\nport = 27017\ndb = ehanlin_104\nquery = { \"a\" : \"a\" , \"b\" : 123}\nviewFlag = true\ndebugFlag = false\ntimeFlag = true\ndurationFlag = true\n```\n\nrun script help\n```shell\n./script.scala *help\n```\n\nhelp output\n```shell\nDefault Option is **query\n**query               default = {}                    question query\n**db                  default = ehanlin_104           db name\n**port                default = 27017                 db port\n**host                default = 127.0.0.1             db ip\n**srcDb               default = hanlin                source db name\n**srcPort             default = 27017                 source db port\n**srcHost             default = 10.13.104.149         source db ip\n*d                    flag                            show run duration\n*t                    flag                            show timestamp\n*b                    flag                            show debug\n*v                    flag                            show log\n*help                 flag                            HELP!\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehanlin%2Fsbt-script-args-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fehanlin%2Fsbt-script-args-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fehanlin%2Fsbt-script-args-parser/lists"}