home *** CD-ROM | disk | FTP | other *** search
- REM
- REM LOCALIZATION
- REM
-
- L_SWITCH_OPERATION = "-t"
- L_SWITCH_SERVER = "-s"
- L_SWITCH_INSTANCE_ID = "-v"
- L_SWITCH_NEWSGROUP = "-g"
- L_SWITCH_MAX_RESULTS = "-n"
- L_SWITCH_MODERATOR = "-m"
- L_SWITCH_DESCRIPTION = "-d"
- L_SWITCH_READ_ONLY = "-r"
- L_SWITCH_DEFAULT_MODERATOR = "-u"
- L_SWITCH_PRETTY_NAME = "-p"
-
- L_OP_FIND = "f"
- L_OP_ADD = "a"
- L_OP_DELETE = "d"
- L_OP_GET = "g"
- L_OP_SET = "s"
-
- L_DESC_PROGRAM = "rgroup - Manipulate NNTP newsgroups"
- L_DESC_ADD = "Add a newsgroup"
- L_DESC_DELETE = "Delete a newsgroup"
- L_DESC_GET = "Get a newsgroup's properties"
- L_DESC_SET = "Set a newsgroup's properties"
- L_DESC_FIND = "Find newsgroups"
-
- L_DESC_OPERATIONS = "<operations>"
- L_DESC_SERVER = "<server> Specify computer to configure"
- L_DESC_INSTANCE_ID = "<virtual server id> Specify virtual server id"
- L_DESC_NEWSGROUP = "<newsgroup name>"
- L_DESC_MAX_RESULTS = "<number of results>"
- L_DESC_MODERATOR = "<moderator email address>"
- L_DESC_DESCRIPTION = "<newsgroup description>"
- L_DESC_READ_ONLY = "<true/false> read-only newsgroup?"
- L_DESC_DEFAULT_MODERATOR = "<true/false> moderated by default moderator?"
- L_DESC_PRETTY_NAME = "<prettyname> response to LIST PRETTYNAMES"
-
- L_STR_GROUP_NAME = "Newsgroup:"
- L_STR_GROUP_DESCRIPTION = "Description:"
- L_STR_GROUP_MODERATOR = "Moderator:"
- L_STR_GROUP_READ_ONLY = "Read only:"
- L_STR_GROUP_PRETTY_NAME = "Prettyname:"
- L_STR_NUM_MATCHING_GROUPS = "Number of matching groups:"
-
- L_ERR_MUST_ENTER_NEWSGROUP = "You must enter a newsgroup name"
-
- REM
- REM END LOCALIZATION
- REM
-
- REM
- REM --- Globals ---
- REM
-
- dim g_dictParms
- dim g_admin
-
- set g_dictParms = CreateObject ( "Scripting.Dictionary" )
- set g_admin = CreateObject ( "NntpAdm.Groups" )
-
- REM
- REM --- Set argument defaults ---
- REM
-
- g_dictParms(L_SWITCH_OPERATION) = ""
- g_dictParms(L_SWITCH_SERVER) = ""
- g_dictParms(L_SWITCH_INSTANCE_ID) = "1"
- g_dictParms(L_SWITCH_NEWSGROUP) = ""
- g_dictParms(L_SWITCH_MAX_RESULTS) = "1000000"
- g_dictParms(L_SWITCH_MODERATOR) = ""
- g_dictParms(L_SWITCH_DESCRIPTION) = ""
- g_dictParms(L_SWITCH_READ_ONLY) = ""
- g_dictParms(L_SWITCH_DEFAULT_MODERATOR) = ""
- g_dictParms(L_SWITCH_PRETTY_NAME) = ""
-
- REM
- REM --- Begin Main Program ---
- REM
-
- if NOT ParseCommandLine ( g_dictParms, WScript.Arguments ) then
- usage
- WScript.Quit ( 0 )
- end if
-
- dim strNewsgroup
- dim i
- dim id
- dim index
-
- REM
- REM Debug: print out command line arguments:
- REM
- REM switches = g_dictParms.keys
- REM args = g_dictParms.items
- REM
- REM
- REM for i = 0 to g_dictParms.Count - 1
- REM WScript.echo switches(i) & " = " & args(i)
- REM next
- REM
-
- g_admin.Server = g_dictParms(L_SWITCH_SERVER)
- g_admin.ServiceInstance = g_dictParms(L_SWITCH_INSTANCE_ID)
- strNewsgroup = g_dictParms(L_SWITCH_NEWSGROUP)
-
- select case g_dictParms(L_SWITCH_OPERATION)
- case L_OP_FIND
- REM
- REM Find newsgroups:
- REM
-
- if strNewsgroup = "" then
- WScript.Echo L_ERR_MUST_ENTER_NEWSGROUP
- WScript.Quit 0
- end if
-
- g_admin.Find strNewsgroup, g_dictParms(L_SWITCH_MAX_RESULTS)
- cGroups = g_admin.Count
-
- WScript.Echo L_STR_NUM_MATCHING_GROUPS & " " & cGroups
-
- for i = 0 to cGroups - 1
-
- WScript.Echo g_admin.MatchingGroup ( i )
-
- next
-
- case L_OP_ADD
-
- if strNewsgroup = "" then
- WScript.Echo L_ERR_MUST_ENTER_NEWSGROUP
- WScript.Quit 0
- end if
-
- g_admin.Default
-
- if g_dictParms(L_SWITCH_READ_ONLY) = "" then
- g_dictParms(L_SWITCH_READ_ONLY) = FALSE
- end if
-
- if g_dictParms(L_SWITCH_DEFAULT_MODERATOR) = "" then
- g_dictParms(L_SWITCH_DEFAULT_MODERATOR) = FALSE
- end if
-
- if g_dictParms(L_SWITCH_DEFAULT_MODERATOR) then
- g_admin.IsModerated = BooleanToBOOL ( TRUE )
- elseif g_dictParms(L_SWITCH_MODERATOR) <> "" then
- g_admin.IsModerated = BooleanToBOOL ( TRUE )
- g_admin.Moderator = g_dictParms(L_SWITCH_MODERATOR)
- else
- g_admin.IsModerated = BooleanToBOOL ( FALSE )
- g_admin.Moderator = ""
- end if
-
- g_admin.Newsgroup = strNewsgroup
- g_admin.ReadOnly = BooleanToBOOL (g_dictParms (L_SWITCH_READ_ONLY))
- g_admin.Description = g_dictParms(L_SWITCH_DESCRIPTION)
- g_admin.PrettyName = g_dictParms(L_SWITCH_PRETTY_NAME)
-
- g_admin.Add
-
- PrintNewsgroup g_admin
-
- case L_OP_DELETE
-
- if strNewsgroup = "" then
- WScript.Echo L_ERR_MUST_ENTER_NEWSGROUP
- WScript.Quit 0
- end if
-
- g_admin.Remove strNewsgroup
-
- case L_OP_GET
-
- if strNewsgroup = "" then
- WScript.Echo L_ERR_MUST_ENTER_NEWSGROUP
- WScript.Quit 0
- end if
-
- g_admin.Get strNewsgroup
- PrintNewsgroup g_admin
-
- case L_OP_SET
-
- if strNewsgroup = "" then
- WScript.Echo L_ERR_MUST_ENTER_NEWSGROUP
- WScript.Quit 0
- end if
-
- g_admin.Get strNewsgroup
-
- if g_dictParms(L_SWITCH_MODERATOR) = "" then
- g_dictParms(L_SWITCH_MODERATOR) = g_admin.Moderator
- end if
-
- if g_dictParms(L_SWITCH_DESCRIPTION) = "" then
- g_dictParms(L_SWITCH_DESCRIPTION) = g_admin.Description
- end if
-
- if g_dictParms(L_SWITCH_READ_ONLY) = "" then
- g_dictParms(L_SWITCH_READ_ONLY) = BOOLToBoolean (g_admin.ReadOnly)
- end if
-
- if g_dictParms(L_SWITCH_DEFAULT_MODERATOR) = "" then
- g_dictParms(L_SWITCH_DEFAULT_MODERATOR) = FALSE
- end if
-
- if g_dictParms(L_SWITCH_PRETTY_NAME) = "" then
- g_dictParms(L_SWITCH_PRETTY_NAME) = g_admin.PrettyName
- end if
-
- if ( g_dictParms(L_SWITCH_DEFAULT_MODERATOR) ) then
- g_admin.IsModerated = BooleanToBOOL ( TRUE )
- g_admin.Moderator = ""
- elseif g_dictParms(L_SWITCH_MODERATOR) <> "" then
- g_admin.IsModerated = BooleanToBOOL ( TRUE )
- g_admin.Moderator = g_dictParms(L_SWITCH_MODERATOR)
- else
- g_admin.IsModerated = BooleanToBOOL ( FALSE )
- g_admin.Moderator = ""
- end if
-
- g_admin.ReadOnly = BooleanToBOOL (g_dictParms (L_SWITCH_READ_ONLY))
- g_admin.Description = g_dictParms(L_SWITCH_DESCRIPTION)
- g_admin.PrettyName = g_dictParms(L_SWITCH_PRETTY_NAME)
-
- g_admin.Set
- PrintNewsgroup g_admin
-
- case else
- usage
-
- end select
-
- WScript.Quit 0
-
- REM
- REM --- End Main Program ---
- REM
-
- REM
- REM ParseCommandLine ( dictParameters, cmdline )
- REM Parses the command line parameters into the given dictionary
- REM
- REM Arguments:
- REM dictParameters - A dictionary containing the global parameters
- REM cmdline - Collection of command line arguments
- REM
- REM Returns - Success code
- REM
-
- Function ParseCommandLine ( dictParameters, cmdline )
- dim fRet
- dim cArgs
- dim i
- dim strSwitch
- dim strArgument
-
- fRet = TRUE
- cArgs = cmdline.Count
- i = 0
-
- do while (i < cArgs)
-
- REM
- REM Parse the switch and its argument
- REM
-
- if i + 1 >= cArgs then
- REM
- REM Not enough command line arguments - Fail
- REM
-
- fRet = FALSE
- exit do
- end if
-
- strSwitch = cmdline(i)
- i = i + 1
-
- strArgument = cmdline(i)
- i = i + 1
-
- REM
- REM Add the switch,argument pair to the dictionary
- REM
-
- if NOT dictParameters.Exists ( strSwitch ) then
- REM
- REM Bad switch - Fail
- REM
-
- fRet = FALSE
- exit do
- end if
-
- dictParameters(strSwitch) = strArgument
-
- loop
-
- ParseCommandLine = fRet
- end function
-
- REM
- REM Usage ()
- REM prints out the description of the command line arguments
- REM
-
- Sub Usage
-
- WScript.Echo L_DESC_PROGRAM
- WScript.Echo vbTab & L_SWITCH_OPERATION & " " & L_DESC_OPERATIONS
- WScript.Echo vbTab & vbTab & L_OP_FIND & vbTab & L_DESC_FIND
- WScript.Echo vbTab & vbTab & L_OP_ADD & vbTab & L_DESC_ADD
- WScript.Echo vbTab & vbTab & L_OP_DELETE & vbTab & L_DESC_DELETE
- WScript.Echo vbTab & vbTab & L_OP_GET & vbTab & L_DESC_GET
- WScript.Echo vbTab & vbTab & L_OP_SET & vbTab & L_DESC_SET
- WScript.Echo vbTab & L_SWITCH_SERVER & " " & L_DESC_SERVER
- WScript.Echo vbTab & L_SWITCH_INSTANCE_ID & " " & L_DESC_INSTANCE_ID
- WScript.Echo vbTab & L_SWITCH_NEWSGROUP & " " & L_DESC_NEWSGROUP
- WScript.Echo vbTab & L_SWITCH_MAX_RESULTS & " " & L_DESC_MAX_RESULTS
- WScript.Echo vbTab & L_SWITCH_MODERATOR & " " & L_DESC_MODERATOR
- WScript.Echo vbTab & L_SWITCH_DESCRIPTION & " " & L_DESC_DESCRIPTION
- WScript.Echo vbTab & L_SWITCH_READ_ONLY & " " & L_DESC_READ_ONLY
- WScript.Echo vbTab & L_SWITCH_DEFAULT_MODERATOR & " " & L_DESC_DEFAULT_MODERATOR
-
- end sub
-
- Sub PrintNewsgroup ( admobj )
-
- WScript.Echo L_STR_GROUP_NAME & " " & admobj.Newsgroup
- WScript.Echo L_STR_GROUP_DESCRIPTION & " " & admobj.Description
- WScript.Echo L_STR_GROUP_MODERATOR & " " & admobj.Moderator
- WScript.Echo L_STR_GROUP_READ_ONLY & " " & BOOLToBoolean (admobj.ReadOnly)
- WScript.Echo L_STR_GROUP_PRETTY_NAME & " " & admobj.PrettyName
-
- end sub
-
- Function BooleanToBOOL ( b )
- if b then
- BooleanToBOOL = 1
- else
- BooleanToBOOL = 0
- end if
- end function
-
- Function BOOLToBoolean ( b )
- BOOLToBoolean = (b = 1)
- end function
-
-