Topic: Call,Upload X  (Read 2110 times)

0 Members and 1 Guest are viewing this topic.

Call,Upload X
« on: January 17, 2013, 09:59:14 AM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Following Syntax info only for Project Admins:
Normal users Call Commands here:
http://TheOven.org/index.php?topic=45.0

Currently:
 ONLY uploading EXISTING Plugins supported.  :thumbsup:
 ONLY uploading EXISTING Files at Tools\ProjectFolder supported.  :thumbsup:
exception:
Call,UploadX supports uploading Tools\ProjectFolder
Call,UploadXMultiQ does not (can not) for now...
ps: WebRoot plugins prepared:
ex:
WebRootSub1_Tools=Projects/Tools/Gena
WebRootSubX_Languages=Projects/Languages

To do:
- Feature: Add New Files/Folders
- Feature: Remove Files/Folders
- Currently uploading Language files (or anything out of Target project folder) not supported
- Improve Backup: 2 backups from web and from local (currently backup local from Download_XX to backup....)
- Call,UploadXMultiQ support uploading Tools\ProjectFolder  (for now workarounded at 'Plugin Link Organisations' )
More To do: at the end.....

Call,UploadX[Q],<File>,[Web]

To upload single file to server,
Q = Ask Question before upload.

Suitable for plugins that exists on 1 server (project specific plugins)
or to upload a single file to server....

Ex:
Code: [Select]
Call,UploadXQ,"%BaseDir%\Projects\Gena\Utils\POSReady 2009 Converter.script",http://gena.cwcodes.net/Projects/Gena/Utils/POSReady%202009%20Converter.script

Tip:
If plugin have [Main] Web1= entry than
Code: [Select]
Call,UploadXQ,"%BaseDir%\Projects\Gena\Utils\POSReady 2009 Converter.script"

Tip2:
If plugin have [Main] Web1= entry AND you run this command inside plugin than
Code: [Select]
Call,UploadXQ

==> This is what you will use for Project Specific Plugins  :great: :great: :great:
Ex: Main plugin, Gena\Basic\PrepPE Gena\Utils\POSReady 2009 Converter etc.

Tip3:
If plugin do NOT have [Main] Web1= entry BUT you send file to a known server
Code: [Select]
Call,UploadXQ,"%BaseDir%\Projects\Yomi\AppY\HD Tasks\SwissKnife_L.script"
This is useful to upload plugins by using CodeBOX which do NOT have DU buttons or Web1=,
   do NOT use inside plugins, See Macro Library ""Host->Right Click->UploadX Path" button....







Call,UploadXMulti[Q],<File>,<WebReadFile>|<Section>|WebRoot|<WebRootSubSub>,<WebReadFile>|<Section>|Web2|Web3|Web4|Web5

To upload single file to multiple servers,
Q = Ask Question before upload.

Development Story of this "Long" Syntax will help understanding :cool: :

Development Step 1:
Call,UploadXMulti[Q],<File>,<WebReadFile>|<Section>

<File> is the file to be uploaded -> Default: %ScriptFile%
<WebReadFile> is the file that we read web info -> Default: %ScriptFile%
<Section> is the section we read that web info -> Default: Main

Inside plugin:
Code: [Select]
Call,UploadXMulti
-->
This will read [Main] Web1= Web2= Web3= Web4= Web5= .....
and upload to servers  :great:

Ex:
Gena\Apps\Supplementary\Graphics\"Desktop Clock Plus-7"
This plugin exists only on 2 servers, Gena and Yomi:

Code: [Select]
[Main]
...
Web1=http://gena.cwcodes.net/Projects/Gena/Apps/Supplementary/Graphics/Desktop%20Clock%20Plus-7.Script
Web2=http://yomi.cwcodes.net/Yomi/AppsGS/Supplementary/Graphics/Desktop%20Clock%20Plus-7.Script
...
[UploadXXX]
Call,UploadXMultiQ






Development Step 2:
But there will be other SE projects,
It would be trouble to add new Web#= to all plugins,
so a new parameter to solve
WebRoot

With 2 WebRoot plugins on all servers,
inside plugin (side by side with Web1=... ):

Call,UploadXMultiQ,,%ProjectDir%\Utils\WebRoots_SE.Script||WebRoot
Call,UploadXMultiQ,,%ProjectDir%\Utils\WebRoots_SE_Gena.Script||WebRoot

1st will upload plugin to all SE Servers
2nd will upload plugin to all SE+Gena Servers

+++
Giving Example with server location of Opera Plugin:

http://w7pese.cwcodes.net/Projects/Win7PESE/Apps/Network/Opera_v12_saydin77.script

WebRoot Plugins provides 2 important info for all related servers:
SE:
WebRoot=w7pese.cwcodes.net
WebRootSub=Projects/Win8PESE

As seen
WebRoot syntax naturally needs "File upload server location" ( WebRootSubSub ) and "file name" ( WebRootFile ),
WebRootSubSub=Apps/Network
WebRootFile=Opera_v12_saydin77.script
==>
WebRoot+WebRootSub+WebRootSubSub+WebRootFile = Opera plugin server location
= http://w7pese.cwcodes.net/Projects/Win7PESE/Apps/Network/Opera_v12_saydin77.script

Writing long, in practice syntax very easy  :cool:

A)
WebRoot gets "File upload server location" ( WebRootSubSub ) and "file name" ( WebRootFile ) automatically from
Web1=

(
** Double Clear: Web1= not used to upload ;) only "location" ( WebRootSubSub ) and "file name" ( WebRootFile ) info taken from it

Reminding:
Web1= used by Call,DownloadX ;)

Shortly: We use Web1= for multiple purposes  :wink:
)

with other words, just write location of plugin on one of servers to Web1=  :wink:

B)
to upload to another "File upload server location" ( WebRootSubSub ), use
a)
[Main]
WebRootSubSub=

or b)
Write value to <WebRootSubSub>
Call,UploadXMultiQ,,%ProjectDir%\Utils\WebRoots_SE.Script||WebRoot|<WebRootSubSub>

ps: For now I prefer writing to  [Main] WebRootSubSub= since it is more noticable ;).

+
to upload with another "file name"
[Main] WebRootFile=
not used (not tested) by any plugins yet, it was designed for plugins that has different name following nature of syntax.....


Well, long to read, but easly when writing codes, see examples:


Ex: "PStart and Papps"
Exists on All SE+Gena Servers at "Same Location" + "Same File Name"
Code: [Select]
[Main]
...
Web1=http://w7pese.cwcodes.net/Projects/Win7PESE/Apps/Portable/Pstart.script

[UploadXXX]
Call,UploadXMultiQ,,%ProjectDir%\Utils\WebRoots_SE_Gena.Script||WebRoot


Ex: "Portable Finder CMD" plugin
Exists on All SE+Gena Servers at "Same Location" + "Same File Name"
Code: [Select]
[Main]
...
Web1=http://gena.cwcodes.net/Projects/Gena/Apps/System%20Tools/Portable%20Finder%20CMD.script

[UploadXXX]
Call,UploadXMultiQ,,%ProjectDir%\Utils\WebRoots_SE_Gena.Script||WebRoot

Very easy to write  :cool:






Development Step 3:
There are plugins that exists on different folders than used with WebRoot,

so Parameter 4 to be used with WebRoot,

Call,UploadXMulti[Q],<File>,<WebReadFile>|<Section>|WebRoot|<WebRootSubSub>,<WebReadFile>|<Section>|Web2|Web3|Web4|Web5

Par4:
<WebReadFile>|<Section>|Web2|Web3|Web4|Web5

<WebReadFile> default: Plugin File
<Section> default: Main
after that, write additional upload locations inside <Section> so syntax reads ;)

===>
As a result, Plugin uploaded to WebRoot + Additional Web#

ex:
WordPad Plugin
Code: [Select]
[Main]
...
Web1=http://w7pese.cwcodes.net/Projects/Win7PESE/Components/MsWordPad.script
Web2=http://gena.cwcodes.net/Projects/Gena/Components/Core/1%20System/Accessories/MsWordPad.script

[UploadXXX]
Call,UploadXMultiQ,,%ProjectDir%\Utils\WebRoots_SE.Script||WebRoot,||Web2

NotePad Plugin:
Code: [Select]
[Main]
...
Web1=http://gena.cwcodes.net/Projects/Gena/Components/Core/1%20System/Accessories/NotePad.script
WebRootSubSub=Components

[UploadXXX]
Call,UploadXMultiQ,,%ProjectDir%\Utils\WebRoots_SE.Script||WebRoot,||Web1

Tip: See Web1, Web2 difference on NotePad/WordPad example ;)

on WordPad example, WebRoot gets WebRootSubSub value from Web1=
on NotePad example, WebRoot gets WebRootSubSub value from [Main] WebRootSubSub=


**********************************************
As you see writing is long, but in practice syntax is easy ;)
From upload point of view:
+
There are "Project Specific" plugins like "POSReady 2009 Converter.script"
+
There are "Shared plugins with Same Folder Location" like "Q-Dir Nenad", "PStart and Papps" , "Portable Finder CMD" , "PC Packed" ....
+
There are "Shared plugins with Different Folder Location (WebRoot + plugins)" like "WordPad", "Notepad"
+
There are "2 Web location" plugins like "Desktop Clock Plus-7"
+
...
And all can be uploaded with simple Syntax to all servers  :great:

**********************************************






[Settings_Default

Plugins have different Default settings in between projects,
Or you want to be sure some important setting is selected before upload etc.

You can add sections ex:
[Settings_Default]
[Settings_Default_SE] (Following last 2 letters of projectname from web)
[Settings_Default_'ProjectName']
[Settings_Default_Gena]
[Settings_Default_Win10PESE]

This sections executed before upload.  :thumbsup:

Ex: For container and hidden plugins ;)

Code: [Select]
[Settings_Default]
IniWrite,%ScriptFile%,Main,Level,0

Ex: To default selected False

Code: [Select]
[Settings_Default]
IniWrite,%ScriptFile%,Main,Selected,False


Ex: "Internet Favorites" plugin
Code: [Select]
[Settings_Default]
IniWrite,%ScriptFile%,Main,Selected,False

[Settings_Default_Gena]
IniWrite,%ScriptFile%,Main,Selected,True

[Settings_Default_SE]
IniWrite,%ScriptFile%,Main,Selected,False


Ex: "PStart and Papps" plugin
Code: [Select]
[Settings_Default]
IniWrite,%ScriptFile%,Main,Selected,True

[Settings_Default_Gena]
IniWrite,%ScriptFile%,Main,Selected,False

[Settings_Default_Win10PESE]
IniWrite,%ScriptFile%,Main,Selected,False





[Upload_Default

There is also [Upload_Default ,

You can add sections ex:
[Upload_Default]
[Upload_Default_SE]
[Upload_Default_Gena]
[Upload_Default_Yomi]
[Upload_Default_Win10PESE]

This sections executed before upload after [Settings_Default .

Not used by any plugin yet, but it will sure be.  :wink:






Tips:

*Tip 1:
Version= increased automatically, Date= updated automatically,
 so you don't need to do manually,
  only write your history manually
Ex:
Code: [Select]
Version=5

History006=blabla
==> Hit upload button  :cool:

ps: a short history also written automatically if no history written (to avoid end user confusion)  :wink:

*Tip 2:
We need a primary web location for File/Plugin (Nearly Mandatory),
which is
[Main] Web1=

Call,Download... use this to download plugin ;)

*Tip 3:
You can upload plugin without version change by decreasing Version= number -1 ;)

When plugin uploaded without version change:
Date=
info written in more detail,  to get noticable about "no version change upload" :cool:
Ex:
Date=2015.09.26_16:12.10 (GMT0: -2 Hours)

ps: here GMT0: -2 Hours Means:
 Time at Greenwich =  2015.09.26_16:12.10 - 2 = 2015.09.26_14:12.10


*Tip 4:

To add Download/Upload buttons easly to a plugin,
1) open plugin with editor
2) go to 1st line at [Process] , create an empty 1st line ;)
3) Wand--->Web---> Call,AddDUBUttons
4) Close Editor
5) Hit small green button
 :cool:

*Tip 4:
Tip: Uploading a plugin without DU buttons via codebox:

Demonstration:
Macro Library-> Button: "New CodeBox"  [To be sure]
Macro Library-> a ->Button: "Host->Right Click->Upload Path" [Only Once]
Windows Explorer -> right click on a plugin/file under project dir -->  "Copy as Path UploadXQ"
paste inside new codebox, at the end of Process


*Tip 5:
RARE CASE:
Using 2 or more Call,Upload.... (not required, MAYBE RARE)
 inside a plugin can cause unwanted version increase (version mismatch)..
To Avoid 2 ways
1)
First copy plugin to different temp folders, than use Call,Upload... for each one ;)
2)
Use Something like:
Code: [Select]
[UploadXXX]
IniRead,%ScriptFile%,Main,Version,%VUploadXStart%
Call,UploadXQ
IniRead,%ScriptFile%,Main,Version,%VUploadXLater%
If,Not,%VUploadXStart%,Equal,%VUploadXLater%,IniWrite,%ScriptFile%,Main,Version,%VUploadXStart%
//-
Call,UploadXMulti,,%ProjectDir%\Utils\WebRoots_SE.Script||WebRoot
If,Not,%VUploadXStart%,Equal,%VUploadXLater%,IniWrite,%ScriptFile%,Main,Version,%VUploadXLater%
or
Code: [Select]
[UploadXXX]
IniRead,%ScriptFile%,Main,Version,%VUploadXStart%
Call,UploadXMultiQ,,%ProjectDir%\Utils\WebRoots_SE.Script||WebRoot
IniRead,%ScriptFile%,Main,Version,%VUploadXLater%
If,Not,%VUploadXStart%,Equal,%VUploadXLater%,IniWrite,%ScriptFile%,Main,Version,%VUploadXStart%
//-
IniRead,%ScriptFile%,Main,Web2,%Web2%
Call,UploadX,,%Web2%
If,Not,%VUploadXStart%,Equal,%VUploadXLater%,IniWrite,%ScriptFile%,Main,Version,%VUploadXLater%

This would be rare, besides writing here to inform ;)








*******
Interesting Examples:

Plugin Manager:
Currently DownloadX do not have feature to execute [Settings_Default....

To get "Plugin Manager" operational on all projects:

Code: [Select]
[DownloadXXX]
Call,DownloadXQ
StrFormat,Split,%ProjectDir%,\,0,%t%
StrFormat,Split,%ProjectDir%,\,%t%,%ProjectFolderName%
Run,%ScriptFile%,Settings_Default
If,ExistSection,%ScriptFile%,Settings_Default_%ProjectFolderName%,Run,%ScriptFile%,Settings_Default_%ProjectFolderName%
System,RefreshInterface


*
Currently DownloadX do not have feature to execute [Download_Default....

To get "Update Projects" extract files after download:

Code: [Select]
[DownloadXXX]
Call,DownloadXQ
If,ExistSection,%ScriptFile%,DownloadXXX_After,Run,%ScriptFile%,DownloadXXX_After


Similar simple examples at
Images Configurations
Attribute Changer Petges









*******
Challenging Examples (RARE Cases):

Call,UploadX and Call,DownloadX syntax not fully finished when this topic created,
 There are Missing features, so things needs to be done manually inside some VERY RARE kind of plugins.
  Codes inside following examples will change in time with Call,UploadX and Call,DownloadX improvments,
    Always check latest plugins on servers.

There is only 4 Challenging examples
     "IE Proxy Settings" plugin
     "Junction" plugin
     'Update XXX (Exact and Secure)' plugin
     'BackupRestore XXX" plugin
compared to rest near 2000 plugins on servers,
 which we can add Call,UploadX easly mostly with 1 line :cheerleader: :magic: ,
    these are very exceptional cases.  :wink:


Example - "IE Proxy Settings" plugin (Challenging 5/10 ;)) :

+ Exists on all servers except Win10PESE
+ Different folders
+ Win8.1SE and Win8PESE have Special hidden menu with enabled checkbox

== Solution =>

Here is Final coding:

Code: [Select]
[Main]
...
Web1=http://w7pese.cwcodes.net/Projects/Win7PESE/Components/IE_Proxy_Settings.script
Web2=http://gena.cwcodes.net/Projects/Gena/Components/Core/1%20System/IE_Proxy_Settings.script
Web3=http://yomi.cwcodes.net/Yomi/ComponentsY/Core/1%20System/IE_Proxy_Settings.script
Web4=http://w8pese.cwcodes.net/Projects/Win8PESE/Components/IE_Proxy_Settings.script
Web5=http://win81se.cwcodes.net/Projects/Win8.1SE/Components/IE_Proxy_Settings.script


[DownloadXXX]
Call,DownloadXQ
StrFormat,PATH,%ScriptFile%,%t%
StrFormat,Replace,%t%,\Win8.1SE\,,%t2%
If,Not,%t%,Equal,%t2%,Run,%ScriptTile%,Advanced_Show_Second_Gui
StrFormat,Replace,%t%,\Win8PESE\,,%t2%
If,Not,%t%,Equal,%t2%,Run,%ScriptTile%,Advanced_Show_Second_Gui
System,RefreshInterface

[UploadXXX]
Call,UploadXMultiQ
System,RefreshInterface

[Settings_Default]
IniWrite,%ScriptFile%,Main,Selected,False
Run,%ScriptFile%,Advanced_Show_First_Gui
Set,%pCheckBox_FDM%,False,Permanent

[Settings_Default_Win8.1SE]
Run,%ScriptFile%,Advanced_Show_Second_Gui
Set,%pCheckBox_FDM%,True,Permanent

[Settings_Default_Win8PESE]
Run,%ScriptFile%,Advanced_Show_Second_Gui
Set,%pCheckBox_FDM%,True,Permanent

not that much hard ;)






Example - Junction plugin (Challenging 10/10 ;)) :
+
have different names
Gena: 2 - t_Junc.script
SE: 0-preconfig_t_Junc.script
+
Different folder
Gena: Basic\Build
SE:Build
+
only exists at 3 SE server (not all)
+
And on Yomi server different Title to get noticed when linked ;)


== Solution =>

Step1:
We can not use
Utils\WebRoots_SE --> not all SE servers
Utils\WebRoots_SE_Gena --> File name different
So we use plugin as our WebRoot File ;)
(to demonstrate such usage, we also can do with only Call,UploadXMulti without WebRoot)
Add [WebRootSub] inside plugin with servers infos you want to upload ;)

Step2:
We copy file to a temp location with 2 different names ;)

Step3:
As a result:
Call,UploadX -> to upload Gena
//-
Call,UploadXMulti -> to upload 3 SE servers and Yomi

Step4:
To get Download button work ok with different file name,
use DownloadX with par2
Code: [Select]
Call,DownloadXQ,%ScriptFile%

Step5:
To get Yomi plugin Title Different with Download
Code: [Select]
[DownloadXXX]
StrFormat,PATH,%ScriptFile%,%t%
StrFormat,Replace,%t%,\Yomi\Build\,,%t2%
If,Not,%t%,Equal,%t2%,IniWrite,%ScriptFile%,Main,Title,"Junction Y"

Step6:
Not to process Yomi Link on Gena

Code: [Select]
[Process]
If,%ProjectName%,Equal,Gena,IniRead,%ScriptFile%,Main,WebRootFile_Gena,%t%
If,%ProjectName%,Equal,Gena,StrFormat,FileName,%ScriptFile%,%ScriptFileName%
If,%ProjectName%,Equal,Gena,If,Not,%ScriptFileName%,Equal,%t%,Exit,"Gena use Junction Plugin at Basic\Build\'Junction' - Exiting"



Here is Final coding:

Code: [Select]
[Main]
...
Web1=http://gena.cwcodes.net/Projects/Gena/Basic/Build/2%20-%20t_Junc.script
WebRootSubSub=Build
WebRootFile=0-preconfig_t_Junc.script
WebRootFile_Gena=2 - t_Junc.script

[Process]
If,%ProjectName%,Equal,Gena,IniRead,%ScriptFile%,Main,WebRootFile_Gena,%t%
If,%ProjectName%,Equal,Gena,StrFormat,FileName,%ScriptFile%,%ScriptFileName%
If,%ProjectName%,Equal,Gena,If,Not,%ScriptFileName%,Equal,%t%,Exit,"Gena use Junction Plugin at Basic\Build\'Junction' - Exiting"

[DownloadXXX]
Call,DownloadXQ,%ScriptFile%
StrFormat,PATH,%ScriptFile%,%t%
StrFormat,Replace,%t%,\Yomi\Build\,,%t2%
If,Not,%t%,Equal,%t2%,IniWrite,%ScriptFile%,Main,Title,"Junction Y"

[UploadXXX]
If,QUESTION,"Are you Sure you want to UPLOAD ?",10,False,Run,%ScriptFile%,UploadXXX_Main
Else,Halt,"UPLOAD Cancelled"

[UploadXXX_Main]
Call,DirDeleteMake,%ProjectTemp%\Upload_File_X_Junction_Plugin
IniRead,%ScriptFile%,Main,WebRootFile_Gena,%WebRootFile_Gena%
FileCopy,%ScriptFile%,%ProjectTemp%\Upload_File_X_Junction_Plugin\%WebRootFile_Gena%
IniRead,%ScriptFile%,Main,WebRootFile,%WebRootFile_R%
FileCopy,%ScriptFile%,%ProjectTemp%\Upload_File_X_Junction_Plugin\%WebRootFile_R%
//-
Call,UploadX,%ProjectTemp%\Upload_File_X_Junction_Plugin\%WebRootFile_Gena%
//-
Call,UploadXMulti,%ProjectTemp%\Upload_File_X_Junction_Plugin\%WebRootFile_R%,%ProjectTemp%\Upload_File_X_Junction_Plugin\%WebRootFile_R%||WebRoot

[Upload_Default]
IniWrite,%ScriptFile%,Main,Selected,False
IniWrite,%ScriptFile%,Main,Title,Junction
Run,%ScriptFile%,Show_First_Gui
Set,%Target_CheckBox_NT6%,True,Permanent
Set,%Target_CheckBox%,True,Permanent
Set,%TargetImage_CheckBox%,True,Permanent

[Upload_Default_Yomi]
IniWrite,%ScriptFile%,Main,Title,"Junction Y"

[WebRootSub]
WebRoot1=w7pese.cwcodes.net
WebRoot2=w8pese.cwcodes.net
WebRoot3=win81se.cwcodes.net
WebRoot4=yomi.cwcodes.net
WebRootSub1=Projects/Win7PESE
WebRootSub2=Projects/Win8PESE
WebRootSub3=Projects/Win8.1SE
WebRootSub4=Yomi


Reminding, Junction Plugin is a VERY RARE case  :smile:
Still code is simple to follow  :thumbsup:

Tip: since file copied to 2 different Temp location no need to precaution to wrong version increase.





Example - 'Update XXX (Exact and Secure)' plugin (Challenging 10/10 ;)) :

+ Exists on (currently) 7 servers with
+ Different file names
+ Different Title
+ Different Interface
+ Different Variables

Obviously we will do things seperately ;)

Step1:

Code: [Select]
[Main]
....
Web1=http://gena.cwcodes.net/Projects/Gena/Utils/Update_BLexact_Gena.script
Web2=http://yomi.cwcodes.net/Yomi/UtilsY/Update_BLexact_Yomi.script
Web3=http://yomi-gena.cwcodes.net/Yomi-Gena/Utils/Update_BLexact_Yomi-Gena.script
Web4=http://w8pese.cwcodes.net/Projects/Win8PESE/Utils/Update_BLexact_Win8PE%20SE.script
Web5=http://win81se.cwcodes.net/Projects/Win8.1SE/Utils/Update_BLexact_Win8.1SE.script
Web6=http://w7pese.cwcodes.net/Projects/Win7PESE/Utils/Update_BLexact_Win7PE%20SE.script
Web7=http://win10se.cwcodes.net/Projects/Win10PESE/Utils/Update_BLexact_Win10PE%20SE.script


Step2:
to get Download button work, for this case,
 we figure out which server with ProjectName and to be sure also with FileName

Solution:
Tip: Similar codes also used on upload, if you understand this download routine it will be easier to understand upload ;)

Code: [Select]
[DownloadXXX]
If,QUESTION,"Are you Sure you want to DOWNLOAD ?",10,False,Run,%ScriptFile%,DownloadXXX_Main_Start
Else,Halt,"DOWNLOAD Cancelled"

[DownloadXXX_Main_Start]
Set,%WebReadNO%,0
Loop,%ScriptFile%,DownloadXXX_Main_Web_Loop,1,100

[DownloadXXX_Main_Web_Loop]
StrFormat,INC,%WebReadNO%,1
Set,%WebX%,""
IniRead,%ScriptFile%,Main,Web%WebReadNO%,%WebX%
If,%WebX%-,Equal,-,Loop,BREAK
Else,Run,%ScriptFile%,DownloadXXX_Main_Web_Loop_B

[DownloadXXX_Main_Web_Loop_B]
//ProjectName from web S
StrFormat,SPLIT,%WebX%,/,4,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Projects,StrFormat,SPLIT,%WebX%,/,5,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Tools,StrFormat,SPLIT,%WebX%,/,5,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Tools,StrFormat,SPLIT,%WebX%,/,6,%WebX_ProjectName%
StrFormat,Replace,%WebX_ProjectName%,%20," ",%WebX_ProjectName%
//Echo,%WebX_ProjectName%,Warn
//ProjectName from web F
//--
//FileName from web S
StrFormat,FileName,%WebX%,%WebX_FileName%
StrFormat,Replace,%WebX_FileName%,%20," ",%WebX_FileName%
//FileName from web F
//--
StrFormat,FileName,%ScriptFile%,%ScriptFileName%
Set,%t1%,0
Set,%t2%,0
If,%ProjectName%,Equal,%WebX_ProjectName%,Set,%t1%,1
If,%ScriptFileName%,Equal,%WebX_FileName%,Set,%t2%,1
If,%t1%%t2%,Equal,11,Run,%ScriptFile%,DownloadXXX_Download

[DownloadXXX_Download]
Call,DownloadX,%ScriptFile%,%WebX%
System,RefreshInterface


Step3:
To get upload work,
 we need to modify plugin,
  so first we copy plugin to 7 different folders,
   and to be secure execute plugin at 8th folder ;)

To modify plugin, infos from Web..= used ( %WebX% )
 General way organised following infos we get from %WebX% ( %WebX_WebRoot% %WebX_ProjectName% %WebX_FileName% )
 With exception Gena (since second folder...), in future same exception way can be used for another project.
  A workaround To write interface with escape:
    ExtractFile,%ScriptFile%,Folder,Update_BLexact_General_Extra.script,.....
     ...
    Run,%ProjectTemp%\Upload_File_X_ExactAndSecure\Update_BLexact_General_Extra.script,

Result:

Code: [Select]
[UploadXXX]
If,QUESTION,"Are you Sure you want to UPLOAD ?",10,False,Run,%ScriptFile%,UploadXXX_Main_Start
Else,Halt,"UPLOAD Cancelled"

[UploadXXX_Main_Start]
Call,DirDeleteMake,%ProjectTemp%\Upload_File_X_ExactAndSecure
FileCopy,%ScriptFile%,%ProjectTemp%\Upload_File_X_ExactAndSecure\UPLOAD_Update_BLexact.script
ExtractFile,%ScriptFile%,Folder,Update_BLexact_General_Extra.script,%ProjectTemp%\Upload_File_X_ExactAndSecure
ExtractFile,%ScriptFile%,Folder,Update_BLexact_Gena_Extra.script,%ProjectTemp%\Upload_File_X_ExactAndSecure
Exec,%ProjectTemp%\Upload_File_X_ExactAndSecure\UPLOAD_Update_BLexact.script,UploadXXX_Main

[UploadXXX_Main]
System,CURSOR,Wait
Set,%WebReadNO%,0
Loop,%ScriptFile%,UploadXXX_Main_Web_Loop,1,100
System,CURSOR,Normal
System,RefreshInterface

[UploadXXX_Main_Web_Loop]
StrFormat,INC,%WebReadNO%,1
Set,%WebX%,""
IniRead,%ScriptFile%,Main,Web%WebReadNO%,%WebX%
If,%WebX%-,Equal,-,Loop,BREAK
Else,Run,%ScriptFile%,UploadXXX_Main_Web_Loop_B

[UploadXXX_Main_Web_Loop_B]
StrFormat,SPLIT,%WebX%,/,3,%WebX_WebRoot%
//--
//ProjectName from web S
StrFormat,SPLIT,%WebX%,/,4,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Projects,StrFormat,SPLIT,%WebX%,/,5,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Tools,StrFormat,SPLIT,%WebX%,/,5,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Tools,StrFormat,SPLIT,%WebX%,/,6,%WebX_ProjectName%
StrFormat,Replace,%WebX_ProjectName%,%20," ",%WebX_ProjectName%
//Echo,%WebX_ProjectName%,Warn
//ProjectName from web F
//--
//FileName from web S
StrFormat,FileName,%WebX%,%WebX_FileName%
StrFormat,Replace,%WebX_FileName%,%20," ",%WebX_FileName%
//FileName from web F
//--
DirMake,%ProjectTemp%\Upload_File_X_ExactAndSecure\%WebReadNO%
FileCopy,%ScriptFile%,%ProjectTemp%\Upload_File_X_ExactAndSecure\%WebReadNO%\%WebX_FileName%
//--
If,ExistSection,%ScriptFile%,UploadXXX_Update_BLexact_%WebX_ProjectName%,Run,%ScriptFile%,UploadXXX_Update_BLexact_%WebX_ProjectName%,%ScriptFile%,%ProjectTemp%\Upload_File_X_ExactAndSecure\%WebReadNO%\%WebX_FileName%
Else,Begin
  Set,%WebX_General_WimSettings%,1
  If,%WebX_ProjectName%,Equal,Yomi,Set,%WebX_General_WimSettings%,0
  If,%WebX_ProjectName%,Equal,Yomi-Gena,Set,%WebX_General_WimSettings%,0
  Run,%ScriptFile%,UploadXXX_Update_BLexact_General,%ScriptFile%,%ProjectTemp%\Upload_File_X_ExactAndSecure\%WebReadNO%\%WebX_FileName%
End
//--
Call,UploadX,%ProjectTemp%\Upload_File_X_ExactAndSecure\%WebReadNO%\%WebX_FileName%,%WebX%

[UploadXXX_Update_BLexact_General]
//Par1:%ScriptFile%  -- Par2: Target File
//--
//Update_BLexact_General_Extra.script [UploadXXX_Update_BLexact_General_External]
IniWrite,#2,Main,Title,"#$qUpdate %WebX_ProjectName% (Exact and Secure)#$q"
//-
//To Write [Interface] RT_TextLabel_Warn=Value -- Escape with an external Plugin
Run,%ProjectTemp%\Upload_File_X_ExactAndSecure\Update_BLexact_General_Extra.script,UploadXXX_Update_BLexact_General_External,#1,#2
//-
IniWrite,#2,Interface,pRadioButton1,"#$qDefault: (#$pGlobalTemplates#$p\Download_%WebX_ProjectName%)#$q,0,11,47,68,291,20,True"
IniWrite,#2,Interface,Download_Folder_FileBox,"C:\Download_%WebX_ProjectName%,0,13,110,91,233,30,dir"
//--
Run,#1,UploadXXX_Update_BLexact_GeneralVariables,#1,#2
Run,#1,UploadXXX_Update_BLexact_VariablesWrite,#1,#2

[UploadXXX_Update_BLexact_GeneralVariables]
Set,%dl%,#$pGlobalTemplates#$p\Download_%WebX_ProjectName%
Set,%ProjectFNMain%,%WebX_ProjectName%
Set,%ProjectFNTools%,Tools\%WebX_ProjectName%
Set,%ProjectFNSecond%,""
Set,%DLServer%,%WebX_WebRoot%
If,%WebX_General_WimSettings%,Equal,1,Begin
  Set,%WimSettings%,#$pProjectFNMain#$p\Images.script
  Set,%WimSettingsT%,pCheck_ExtractWimFolder
  Set,%WimSettingsB%,pBootWimSrcBox
  Set,%WimSettingsI%,pInstallWimSrcBox
End
Else,Begin
  Set,%WimSettings%,""
  Set,%WimSettingsT%,""
  Set,%WimSettingsB%,""
  Set,%WimSettingsI%,""
End

[UploadXXX_Update_BLexact_VariablesWrite]
//Par1:%ScriptFile%  -- Par2: Target File
IniWrite,#2,Variables,#$pdl#$p,%dl%
IniWrite,#2,Variables,#$pProjectFNMain#$p,%ProjectFNMain%
IniWrite,#2,Variables,#$pProjectFNTools#$p,%ProjectFNTools%
IniWrite,#2,Variables,#$pProjectFNSecond#$p,%ProjectFNSecond%
IniWrite,#2,Variables,#$pDLServer#$p,%DLServer%
IniWrite,#2,Variables,#$pWimSettings#$p,%WimSettings%
IniWrite,#2,Variables,#$pWimSettingsT#$p,%WimSettingsT%
IniWrite,#2,Variables,#$pWimSettingsB#$p,%WimSettingsB%
IniWrite,#2,Variables,#$pWimSettingsI#$p,%WimSettingsI%

[UploadXXX_Update_BLexact_Gena]
//%ScriptFile%=%ProjectTemp%\Upload_File_X_ExactAndSecure\UPLOAD_Update_BLexact.script
//Par1:%ScriptFile%  -- Par2: Target File
//Echo,%WebX_ProjectName%--,Warn
//--
IniWrite,#2,Main,Title,"Update Gena (Exact and Secure)"
//-
//To Write [Interface] RT_TextLabel_Warn=Value -- Escape with an external Plugin
Run,%ProjectTemp%\Upload_File_X_ExactAndSecure\Update_BLexact_Gena_Extra.script,UploadXXX_Update_BLexact_Gena_External,#1,#2
//-
IniWrite,#2,Interface,pRadioButton1,"#$qDefault: (#$pGlobalTemplates#$p\Download_Gena)#$q,0,11,47,68,291,20,True"
IniWrite,#2,Interface,Download_Folder_FileBox,"C:\Download_Gena,0,13,110,91,233,30,dir"
//--
AddVariables,#1,UploadXXX_Update_BLexact_Gena_Variables
Run,#1,UploadXXX_Update_BLexact_VariablesWrite,#1,#2

[UploadXXX_Update_BLexact_Gena_Variables]
%dl%=#$pGlobalTemplates#$p\Download_Gena
%ProjectFNMain%=Gena
%ProjectFNTools%=Tools\Gena
%ProjectFNSecond%=Gena-Sweets
%DLServer%=gena.cwcodes.net
%WimSettings%=
%WimSettingsT%=
%WimSettingsB%=
%WimSettingsI%=


Step4:
Simple step, to get normal gui on final plugin:

Code: [Select]
[Settings_Default]
Run,%ScriptFile%,Show_FirstB_Gui
Run,%ScriptFile%,Show_First_Gui




Example - 'BackupRestore XXX" plugin (Challenging 7/10 ;)) :

//+ Different file names
//+ Different Title
//+ Different Level
//+ May have Different Selected
//+ Ready to upload Different ProjectName/Server

Download section is same with 'Update XXX (Exact and Secure)' plugin  :thumbsup:

Upload section, Compared to 'Update XXX (Exact and Secure)' very similar way used  :great:

Code: [Select]
[Main]
....
Web1=http://gena.cwcodes.net/Projects/Gena/Components/Xerox/00-4_BackupRestore_Components.script
Web2=http://gena.cwcodes.net/Projects/Gena/Basic/Xerox/00-4_BackupRestore_Basic.script
Web3=http://gena.cwcodes.net/Projects/Gena/Drivers/1%20Audio/00-4_BackupRestore_Drivers.script
Web4=http://gena.cwcodes.net/Projects/Gena/Finals/1%20Optimizations/00-4_BackupRestore_Optimizations.script


[DownloadXXX]
If,QUESTION,"Are you Sure you want to DOWNLOAD ?",10,False,Run,%ScriptFile%,DownloadXXX_Main_Start
Else,Halt,"DOWNLOAD Cancelled"

[DownloadXXX_Main_Start]
Set,%WebReadNO%,0
Loop,%ScriptFile%,DownloadXXX_Main_Web_Loop,1,100

[DownloadXXX_Main_Web_Loop]
StrFormat,INC,%WebReadNO%,1
Set,%WebX%,""
IniRead,%ScriptFile%,Main,Web%WebReadNO%,%WebX%
If,%WebX%-,Equal,-,Loop,BREAK
Else,Run,%ScriptFile%,DownloadXXX_Main_Web_Loop_B

[DownloadXXX_Main_Web_Loop_B]
//ProjectName from web S
StrFormat,SPLIT,%WebX%,/,4,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Projects,StrFormat,SPLIT,%WebX%,/,5,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Tools,StrFormat,SPLIT,%WebX%,/,5,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Tools,StrFormat,SPLIT,%WebX%,/,6,%WebX_ProjectName%
StrFormat,Replace,%WebX_ProjectName%,%20," ",%WebX_ProjectName%
//Echo,%WebX_ProjectName%,Warn
//ProjectName from web F
//--
//FileName from web S
StrFormat,FileName,%WebX%,%WebX_FileName%
StrFormat,Replace,%WebX_FileName%,%20," ",%WebX_FileName%
//FileName from web F
//--
StrFormat,FileName,%ScriptFile%,%ScriptFileName%
Set,%t1%,0
Set,%t2%,0
If,%ProjectName%,Equal,%WebX_ProjectName%,Set,%t1%,1
If,%ScriptFileName%,Equal,%WebX_FileName%,Set,%t2%,1
If,%t1%%t2%,Equal,11,Run,%ScriptFile%,DownloadXXX_Download

[DownloadXXX_Download]
Call,DownloadX,%ScriptFile%,%WebX%
System,RefreshInterface

[UploadXXX]
//+ Different file names
//+ Different Title
//+ Different Level
//+ May have Different Selected
//+ Ready to uplaod Different ProjectName/Server
If,QUESTION,"Are you Sure you want to UPLOAD ?",10,False,Run,%ScriptFile%,UploadXXX_Main_Start
Else,Halt,"UPLOAD Cancelled"

[UploadXXX_Main_Start]
Call,DirDeleteMake,%ProjectTemp%\Upload_File_X_BackupRestore
FileCopy,%ScriptFile%,%ProjectTemp%\Upload_File_X_BackupRestore\UPLOAD_Update_BackupRestore.script
//Call,OpenDir,%ProjectTemp%\Upload_File_X_BackupRestore
Exec,%ProjectTemp%\Upload_File_X_BackupRestore\UPLOAD_Update_BackupRestore.script,UploadXXX_Main

[UploadXXX_Main]
System,CURSOR,Wait
Set,%WebReadNO%,0
Loop,%ScriptFile%,UploadXXX_Main_Web_Loop,1,100
System,CURSOR,Normal
System,RefreshInterface

[UploadXXX_Main_Web_Loop]
StrFormat,INC,%WebReadNO%,1
Set,%WebX%,""
IniRead,%ScriptFile%,Main,Web%WebReadNO%,%WebX%
If,%WebX%-,Equal,-,Loop,BREAK
Else,Run,%ScriptFile%,UploadXXX_Main_Web_Loop_B

[UploadXXX_Main_Web_Loop_B]
StrFormat,SPLIT,%WebX%,/,3,%WebX_WebRoot%
//--
//ProjectName from web S
StrFormat,SPLIT,%WebX%,/,4,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Projects,StrFormat,SPLIT,%WebX%,/,5,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Tools,StrFormat,SPLIT,%WebX%,/,5,%WebX_ProjectName%
If,%WebX_ProjectName%,Equal,Tools,StrFormat,SPLIT,%WebX%,/,6,%WebX_ProjectName%
StrFormat,Replace,%WebX_ProjectName%,%20," ",%WebX_ProjectName%
//Echo,%WebX_ProjectName%,Warn
//ProjectName from web F
//--
//FileName from web S
StrFormat,FileName,%WebX%,%WebX_FileName%
StrFormat,Replace,%WebX_FileName%,%20," ",%WebX_FileName%
//FileName from web F
//--
DirMake,%ProjectTemp%\Upload_File_X_BackupRestore\%WebReadNO%
FileCopy,%ScriptFile%,%ProjectTemp%\Upload_File_X_BackupRestore\%WebReadNO%\%WebX_FileName%
//--
Call,FileNameNoExt,%WebX_FileName%,WebX_FileNameNoExt
Run,%ScriptFile%,UploadXXX_BackupRestore_%WebX_FileNameNoExt%,%ScriptFile%,%ProjectTemp%\Upload_File_X_BackupRestore\%WebReadNO%\%WebX_FileName%
If,ExistSection,%ScriptFile%,UploadXXX_BackupRestore_%WebX_FileNameNoExt%_%WebX_ProjectName%,Run,%ScriptFile%,UploadXXX_BackupRestore_%WebX_FileNameNoExt%_%WebX_ProjectName%,%ScriptFile%,%ProjectTemp%\Upload_File_X_BackupRestore\%WebReadNO%\%WebX_FileName%
//--
Call,UploadX,%ProjectTemp%\Upload_File_X_BackupRestore\%WebReadNO%\%WebX_FileName%,%WebX%

[UploadXXX_BackupRestore_00-4_BackupRestore_Components]
//Par1:%ScriptFile%  -- Par2: Target File
IniWrite,#2,Main,Title,"BackupRestore Components"
IniWrite,#2,Main,Level,3
IniWrite,#2,Main,Selected,False
IniWrite,#2,Variables,#$pBackupRestoreHardcode#$p,BackupRestore_3_Components_Xerox

[UploadXXX_BackupRestore_00-4_BackupRestore_Components_Gena]
//Par1:%ScriptFile%  -- Par2: Target File
Echo,Gena

[UploadXXX_BackupRestore_00-4_BackupRestore_Basic]
IniWrite,#2,Main,Title,"BackupRestore Basic"
IniWrite,#2,Main,Level,1
IniWrite,#2,Main,Selected,False
IniWrite,#2,Variables,#$pBackupRestoreHardcode#$p,BackupRestore_1_Basic_Xerox

[UploadXXX_BackupRestore_00-4_BackupRestore_Drivers]
IniWrite,#2,Main,Title,"BackupRestore Drivers"
IniWrite,#2,Main,Level,6
IniWrite,#2,Main,Selected,False
IniWrite,#2,Variables,#$pBackupRestoreHardcode#$p,BackupRestore_6_Drivers

[UploadXXX_BackupRestore_00-4_BackupRestore_Optimizations]
IniWrite,#2,Main,Title,"BackupRestore Optimizations"
IniWrite,#2,Main,Level,8
IniWrite,#2,Main,Selected,False
IniWrite,#2,Variables,#$pBackupRestoreHardcode#$p,BackupRestore_8_Optimizations

[Settings_Default]
Run,%ScriptFile%,Show_First_Gui

 :cheers:
























*******
How upload works:
Call,UploadX is the center of upload mechanism. "Call,UploadX[Q],<File>,[Web]"

You can upload file from any folder, even from desktop  :thumbsup:
2 Things crucial:
1) Target [Web] is crucial.
2) ChangeLog location is crucial

Since we combine uploading plugins that are scattered over currently 7 servers (4 SE, 1 Gena 1 Yomi 1 Yomi-Gena) :
To get Call,UploadX operational, minimal currently you need:

BaseDir\Workbench\Common\Download_1Upload\...Files
BaseDir\Workbench\Common\Download_Gena\Projects\Gena\Utils\ChangeLog.Script
BaseDir\Workbench\Common\Download_Win7PESE\Projects\Win7PESE\Utils\ChangeLog.Script
BaseDir\Workbench\Common\Download_Win8.1SE\Projects\Win8.1SE\Utils\ChangeLog.Script
BaseDir\Workbench\Common\Download_Win8PESE\Projects\Win8PESE\Utils\ChangeLog.Script
BaseDir\Workbench\Common\Download_Win10PESE\Projects\Win10PESE\Utils\ChangeLog.Script
BaseDir\Workbench\Common\Download_Yomi\Projects\Yomi\Utils\ChangeLog.Script
BaseDir\Workbench\Common\Download_Yomi-Gena\Projects\Yomi-Gena\Utils\ChangeLog.Script

ps: anyversion of ChangLog is okey, since it provides ChangeLog web address and index web address ;)

ps: as you notice, you don't need exact copy of files from server ;) neither at Download_XXX nor at basedir.
 Call,UploadX is a Hot Update  :xmas-cool: mechanism, so only "Be Careful" when using  :cool:

Tip:
Yomi\UtilsY\Update Projects -->Interface Seperate Folder : pick no project and click "ReCreate Seperate Folder"
 will also give you minimal condition to get Call,UploadX fully operational (if you have above files at your BaseDir... )
   PS: anyway, it is more convenient to pick a project  :wink:




How it uploads Basically:
ex:
BaseDir D:\Oven
uploading D:\1\POSReady 2009 Converter.script
-->
Before upload, ChangeLog downloaded and "POSReady 2009 Converter.script" infos written,
-->
After upload (3 files uploaded, uini, ChangeLog and "POSReady 2009 Converter.script")
-->
Files updated on BaseDir:
D:\Oven\Projects\Gena\Utils\"POSReady 2009 Converter.script" (UPLOADED File)
D:\Oven\Workbench\Common\Download_Gena\Projects\Gena\Utils\"POSReady 2009 Converter.script" (UPLOADED File)
D:\Oven\Workbench\Common\Download_Gena\Backup\Projects\Gena\Utils\"POSReady 2009 Converter_vYYY.script" (Backup previous file At .\Download_Gena\...)


Ex:
BaseDir D:\Oven
Multi uploading D:\1\VMWare.script
-->
Above procedure for each upload location made, so shortly In final you will have

D:\Oven\Projects\Gena\VirtualTest\"VMWare.script" (UPLOADED File)
D:\Oven\Projects\Win7PESE\VirtualTest\"VMWare.script" (UPLOADED File)
D:\Oven\Projects\Win8.1SE\VirtualTest\"VMWare.script" (UPLOADED File)
D:\Oven\Projects\Win8PESE\VirtualTest\"VMWare.script" (UPLOADED File)
D:\Oven\Projects\Win10PESE\VirtualTest\"VMWare.script" (UPLOADED File)
+
Same at
D:\Oven\Workbench\Common\Download_XXX\Projects\XXX\VirtualTest\"VMWare.script"
D:\Oven\Workbench\Common\Download_XXX\Backup\Projects\XXX\VirtualTest\"VMWare_vYYY.script"


===>
+ This keeps  Download_XXX\Projects\ folder Same with Server  :thumbsup:
+ updating all BaseDir project folders automatically get life easier  :cool:

***
ChangeLog at
D:\Oven\Workbench\Common\Download_XXX\Projects\XXX\Utils\ChangeLog.script
updated which would serve keeping Download_XXX\Projects\ folder Same with Server  :thumbsup:
But
ChangeLog at
D:\Oven\Projects\XXX\Utils\ChangeLog.script
not updated on purpose.

Reason: Since it is a "Hot update", update can not say if you updated all new plugins on your BaseDir,

This should be made by a future command,
like Call,UpdateProject or something like that, side by side with another command like Call,CheckServer  ....


ps:
In fact same reality exists with Download_XXX\ , besides Call,UpdateX (Hot Update) do not care if you have exact copy of server ;)



How it uploads Programatically:
.... Later when I find time, it would be nice to draw a scheme, for now you can follow Macro Library Codes  :thumbsup:


*
To Do:
+ Call,CheckServer  (something like that)

+ Call,UpdateProject (something like that) ==> Following ChangeLog --> than we can disable problematic "Download button" at top right  :cheerleader: :magic:
now we have Call,DownloadUpdates

+ Call,DownloadX improve and document so:
+ downloading a plugin with webroot etc. should end with same file under all \Download_...\ folder
and hopefully on other project folders if there exists script.project ..
->
+ Some Download_Plugins maybe inside project folder with a trick (.Link overrides .script if same filename):
Apps\Supplementary\MultiMedia\mpc-hc.script -> In fact Download Plugin (same version with original)
Apps\Supplementary\MultiMedia\mpc-hc_file.script -> In fact Download Plugin (same version with original)
if end user downloads there will be
Apps\Supplementary\MultiMedia\mpc-hc.script -> In fact Download Plugin (same version with original)
Apps\Supplementary\MultiMedia\mpc-hc.Link
Apps\Supplementary\MultiMedia\mpc-hc_file.script -> In fact Download Plugin (same version with original)
Apps\Supplementary\MultiMedia\mpc-hc_file.Link
on gui end user will see only link ;)
Call,UpdateProject  --> if new mpc-hc.script version, downloads, checks if .Link exists, if yes than follow downloading real one ;)
==>
mpc-hc.script upload button will also need upload "mpc-hc.script Download plugin" to other servers
====> Call,CreateDownloadPlugin (something like that) required  :smile:
-> This will reduce project size but requires tooo much work, much later  :great: :thumbsup: slowly slowly :turtle:

+ How it uploads Programatically: on current topic, write down scheme

+ Following ChangeLog, we can automatically gather HistoryXXX= info to be used in between zip distributions (What is new)
just a reminder, end multiple HistoryXXX numerically,
ex:
History019a=
History019b=
History019c=
History019d=
History019=
Reply 51: http://theoven.org/index.php?topic=1413.msg16534#msg16534

+ We can have "Restore Points" so one can Revert back to a date (s)he downloaded :)


Lots of To Do, maybe finish till next summer  :beach_chair: during year :turtle:



..... More later  :cool: :turtle:










Call,DownloadX[Q],<File>,[Web]
Special command to download plugins

Inside Plugins with
Code: [Select]
[Main]
Web1=....
...
Call,DownloadXQ

is enough  :great:
and available on many plugins  :great:

*
To feedback on topics,
providing builder codebox is fine  :thumbsup:
(specially for hidden plugins where web1= info available inside plugins)
Code: [Select]
Call,Download,%BaseDir%\Projects\Win10PESE\Utils\Support_Log.script
ex:
http://theoven.org/index.php?topic=1919.msg21623#msg21623


*
More DownloadX info:
Currently DownloadX do not have feature to execute [Settings_Default.
Currently DownloadX do not have feature to execute [Download_Default....
see related info on Call,UploadX topic

*
Here is a template for CodeBox tests:
( lets say we use codebox of under Win10PESE
below demonstrates Call,DownloadX is independent from where we use codebox )

Code: [Select]
//IniWrite,%BaseDir%\Projects\Win10PESE\Utils\Support_Log.script,Main,Title,----------Win10PESE
//IniWrite,%BaseDir%\Projects\Gena\Utils\Support_Log.script,Main,Title,************Gena
//--
Call,Download,%BaseDir%\Projects\Win10PESE\Utils\Support_Log.script,http://gena.cwcodes.net/Projects/Gena/Utils/Support_Log.script
//-
Call,Download,%BaseDir%\Projects\Win10PESE\Utils\Support_Log.script,http://win10se.cwcodes.net/Projects/Win10PESE/Utils/Support_Log.script
//-
//This downloads to Win10PESE\Utils\Support_Log.script - Running CodeBox under Win10PESE - Independent from CodeBox Location
//Nice to use for feedbacks on topics ex: http://theoven.org/index.php?topic=1919.msg21623#msg21623
Call,DownloadX,%BaseDir%\Projects\Win10PESE\Utils\Support_Log.script
//-
//This downloads to Win10PESE\Utils\Support_Log.script - Running CodeBox under Win10PESE - Independent from CodeBox Location
Call,Download,,http://win10se.cwcodes.net/Projects/Win10PESE/Utils/Support_Log.script
//-
//This downloads to Gena\Utils\Support_Log.script - Running CodeBox under Win10PESE - Independent from CodeBox Location
Call,DownloadX,%BaseDir%\Projects\Gena\Utils\Support_Log.script
//-
//This downloads to Gena\Utils\Support_Log.script - Running CodeBox under Win10PESE - Independent from CodeBox Location
Call,DownloadX,,http://gena.cwcodes.net/Projects/Gena/Utils/Support_Log.script
//----
//Call,StartDocNotePad,%BaseDir%\Projects\Win10PESE\Utils\Support_Log.script
//Call,StartDocNotePad,%BaseDir%\Projects\Gena\Utils\Support_Log.script


:turtle:
« Last Edit: October 28, 2016, 02:53:52 AM by Lancelot »

Re: Call,Upload X
« Reply #1 on: December 05, 2016, 01:40:05 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Following is lessons I wrote to Galapo and Chris to administrate and use Call,UploadX
 There is no special order on lessons,
  besides lessons still follow an order that fits learning curve....

Reminder: Current Builder have wrong and missing design features that limits improvments with Call,UploadX and Call,DownloadX


Quote from: Lancelot
1)
put Oven.7z to your D:\
and right click-Extract Here (7zip or maybe you prefer WinRAR..)

2)
Double click D:\Oven\BuilderSE.exe
Click upload button on
Gena\Utils\"POSReady 2009 Converter"


Quote from: Lancelot
Quote from: Galapo
So this was just for a Gena-only plugin, right?
Yes,
Well posready plugin became my small sized test plugin to test DU buttons during ML improvments  :wink:
as you may notice inside posready plugin you upload:

*
Version=040
->
Version=041
automatically.
*
Date=2016.11.14
written automatically,
*
and since you did not write a history info
History041=Galapo updated v041 - Date:2016.11.14
written automatically.

ps:
If you had written plugin
History041=Galapo did something
and hit upload button, result would be
History041=Galapo did something - Date:2016.11.14



Quote from: Galapo
How do I upload one that is also supplied with SE projects?
Same,  let's make another test to demonstrate
Gena\Components\Tweaks\"Additional Files"
*
edit plugin
Version=020
->
Version=019
*
hit upload button.


Quote from: Lancelot
*
after you upload you may notice
History020=Lancelot Added Components_PluginCache_Extract x 2- Date:2016.11.10 - Date:2016.11.10
--->
History020=Lancelot Added Components_PluginCache_Extract x 2- Date:2016.11.10 - Date:2016.11.10 - Date:2016.11.14

so v20 updated 3 times, but for this bad example there is missing, before you make a same version upload better you did something like this
History020=Lancelot Added Components_PluginCache_Extract x 2- Date:2016.11.10 - Date:2016.11.10 // Galapo did this
--->
History020=Lancelot Added Components_PluginCache_Extract x 2- Date:2016.11.10 - Date:2016.11.10 // Galapo did this - Date:2016.11.14

*
You should also notice
Date=2016.11.10
-->
Date=2016.11.14_15:50.58 (GMT0: -8 Hours)

when there is such thing, it means plugin updated without version change

*
after you upload
Gena\Components\Tweaks\"Additional Files"

you will notice
Win10PE SE\Components\"Additional Files"
also updated
 :thumbsup:

*
Change log also written automatically with your name.


===>
as you see DU buttons act very same with single or multiple servers

Quote from: Lancelot
1 more mini lesson before finishing DU buttons of existing plugins:

download and extract this to Gena\Utils
POSReady 2009 Converter.7z

on
Utils\POSReady 2009 Converter
plugin
hit Yellow Compare button.

==>
+
This way without downloading all plugins from server,
or without downloading plugin with download button,
you see if another admin made an update on server.

+
I use yellow compare button
 before I start working on a plugin
and
 before I hit upload button

This way I avoid intersect of upload on same plugin (possibility becomes 1/100000000  :tongue:)

If I notice plugin already updated, after I see changes, I download plugin and continue.....
(This happens time to time ;) )


*
Yellow compare button also help
 to check things (new history written) before upload
 and during development of plugin to check old codes.;)


Yellow compare button is important, and help to gain big time. (compared to old days)


after you practice Yellow button, and when you have another 2 minutes, let me know.

Quote from: Lancelot
Tip:
I do not close winbuilder, since it takes time to open  :wink: missing feature -  bug of winbuilder


Quote from: Lancelot
ok, next 2 minutes:

check your @gmail

1)
Extract
Download_XX_PW.7z
to
D:\Oven\Workbench\Common

2)
Yomi\Utils\Update Projects
 --> Interface SE Gena
 --> on right of Gena you will see "blexactserver" button
click it
you see blexactserver now to sync with server  :thumbsup:

you can close it or continue....

3)
 --> on right of Gena you will see "Start Update" button
click it
when genvirgin.ftp open,
close cmd window to cancel upload
close  genvirgin.ftp

observe
D:\Oven\Workbench\Common\Download_Gena

******
So shortly,
Yomi\Utils\"Update Projects"
plugin helps uploading to all servers,

If your goal is to ADD or REMOVE a NEW plugin to all servers,
ex:
after blexactserver with all servers,
add plugin to folders
\Download_Gena\Projects\
\Download_Win10PESE\Projects\
...
and click "Start Update ALL"



*
Now click
"Start Update ALL" (or "Start Update SE ALL")
button
and close cmd windows at genvirgin.ftp step  :wink:

observe
D:\Oven\Workbench\Common\Download_Gena
D:\Oven\Workbench\Common\Download_Win10PESE
etc.


*
observe : before you do above, only file there is genVirginFirst.txt
after you follow above, you will see all required files there....


****
Happy 2 minutes,
This post is about ADD or REMOVE NEW plugins,
since old method (genvirgin - blexact) you are familiar with used,
I believe it will be very fast to understand  :thumbsup: :thumbsup: :thumbsup: :thumbsup:

ps: I use BuilderSE.exe all the time for du etc.....


See you on next 2 minutes. Let me know.  :great:


Quote from: Galapo
It was a bit longer than three minutes.  :lol: But I've followed you next steps above.

I also see that 'Yomi\Utils\Update Projects' doesn't update the project folder, but the '\Workbench\Common\Download_Gena' folder.

I also have a 'Gena\Downloads' folder in the WB interface tree.

Quote from: Lancelot
Not my fault
curiosity cause more than 3 minutes  :cool:

my lessons only requires 2  :wink:

Quote from: Galapo
I also see that 'Yomi\Utils\Update Projects' doesn't update the project folder, but the '\Workbench\Common\Download_Gena' folder.
Sure, that was next lesson  :wink:


Server syncronization takes place at
'\Workbench\Common\Download_Gena'
not at
'project folder'

==>
'\Workbench\Common\Download_XXX'
same with server.



**
Here is 30 seconds of 2 minutes:

*Info:
Yomi\Utils\'Update Projects'
when you hit download button,
(at main interface , use <---  buttons to go back to mother of interfaces)

all 0_GenVirginMaker.cmd updated by plugin.

See codes inside Yomi\Utils\'Update Projects'
Code: [Select]
[DownloadXXX]
Call,DownloadXQ
If,ExistSection,%ScriptFile%,DownloadXXX_After,Run,%ScriptFile%,DownloadXXX_After

[DownloadXXX_After]
....


I am sure it will take only 30 seconds you figure out.

**
Further:
If you update 0_GenVirginMaker.cmd
I can get it by only dl button  :wink:


Next lesson on next post... :turtle:


Quote from: Lancelot
Here is a 1:30 minute lesson:

at
Gena\PrepPE

disable "verify plugin dependencies"
click "Advanced gui"

and click "compare button"


===>

you will see selected files are identical  :great:

Reason behind:
Compare button is smart,
it uses
[Settings_Default]

upload button also uses
[Settings_Default]

check preppe
[Settings_Default]
section ;)


end of 1:30 lesson: now you learn importance of [Settings_Default] and how it is useful  :cool:


more when you have next 2 minutes. :turtle:


Quote from: Lancelot
and here is  5 seconds to prepare next lesson:

at
D:\Oven\Workbench\Common\Download_Yomi\Projects\Yomi
you will notice not all 4 plugins there (on purpose when I prepare Oven.7z )

on builder interface, hit download button on
Yomi\AppsGS\File TAsks\WinMerge v2.12.4
Yomi\UtilsY\Pack Projects
Yomi\UtilsY\Update Projects (you already did on previous lesson  :wink: )
Yomi\UtilsY\Update Yomi (Exact and Secure)

check
D:\Oven\Workbench\Common\Download_Yomi\Projects\Yomi
...
folders,
you will notice plugins there  :wink:


=====>
Shortly there are naturally 3 locations for a plugin.
Server\...
Download_XXX\.....  (same with server - like a distributed software on cd or zip etc.)
Project folder

:turtle:


Quote from: Lancelot
Hi Galapo,

just a reminder,
do not let curiosity hit you when following 2 minutes tutorial posts  :wink:

Just strictly follow 2 minutes posts till the end of all course  :great:

When you find time.
:turtle:

Quote from: Galapo
Hi Lancelot,

Quick question about updating plugins to Gena Sweets. I have updated a couple of plugins: UltraISO and DriveSnapshot. But I don't know how I upload these to the server. Hopefully this isn't difficult to explain.



Quote from: Lancelot
Lesson: updating plugins without DU buttons:
example: UltraISO and DriveSnapshot.
(course time: 2 minutes)


Lesson 1/2: Simple (1 plugin)

1)
On "Macro Library" Advanced Interface
Hit -> "Host->Right Click->UploadX Path" button

2)
go to folder
\Projects\Yomi\AppsGS\CDVD\
right click
UltraISO.script
and
"Copy as Path UploadXQ"

Tip: builder screen left click "yellow folder icon" opens folder with explorer  :wink:
[ Guests cannot view attachments ]

3)
At builder, on Gena or SE Codebox
paste
result should be something like:

Code: [Select]
[Main]
Title=CodeBox TheOven.org
Description=Test Commands Starting at last line of [Process]

[Variables]

[Process]
If,ExistFile,%api%,AddVariables,%api%,ApiVar,GLOBAL
//--
Call,UploadXQ,"D:\Oven\Projects\Yomi\AppsGS\CDVD\UltraISO.script"


4)
Playing codebox
 will ASK UPLOAD first, after you click YES
  will upload plugin to server.  :thumbsup: :thumbsup:

see you on next post
[ Guests cannot view attachments ]

Quote from: Lancelot
Lesson 2/2: Updating More than 1 plugin:

(+ 2 minutes)

following lesson 1/2

1)
open folder
.\Yomi\AppsGS\HD Tasks\Imaging
right click
Snapshot.script
and
"Copy as Path UploadXQ"

2)
At builder, on Gena or SE Codebox
paste

result should be something like:
(DO NOT USE)

Code: [Select]
[Main]
Title=CodeBox TheOven.org
Description=Test Commands Starting at last line of [Process]

[Variables]

[Process]
If,ExistFile,%api%,AddVariables,%api%,ApiVar,GLOBAL
//--
Call,UploadXQ,"D:\Oven\Projects\Yomi\AppsGS\CDVD\UltraISO.script"
Call,UploadXQ,"D:\Oven\Projects\Yomi\AppsGS\HD Tasks\Imaging\Snapshot.script"



3) since multiple plugins, better remove asking Yes NO Question, remove Q letter

so use following:
Code: [Select]
[Main]
Title=CodeBox TheOven.org
Description=Test Commands Starting at last line of [Process]

[Variables]

[Process]
If,ExistFile,%api%,AddVariables,%api%,ApiVar,GLOBAL
//--
Call,UploadX,"D:\Oven\Projects\Yomi\AppsGS\CDVD\UltraISO.script"
Call,UploadX,"D:\Oven\Projects\Yomi\AppsGS\HD Tasks\Imaging\Snapshot.script"

ps: I upload more than 10 plugins at once this way during some updates...


4)
Playing codebox
 will Directy UPLOAD all plugins.


Quote from: Lancelot
Reminder:
(1 minute)

+
Above only to update existing plugins
+
tools files can be also updated similarly, when required on another lesson  :thumbsup:
+
adding new plugin to all servers at once is on another lesson :thumbsup:
+
roots of all buttons and procedures are same with things we did before.
+
I hope next SE project will be on general server like winse.cwcodes.net or things continue with win10se.cwcodes.net
since this will make maintance easier....

:super_hero: 5 minutes lesson finished, I hope easy to follow and all clear. 


Quote from: Galapo
just prior to package creation I like to increase the version number of the changelog and write a note there to say that ZIP packages have been updated. Then the changelog is uploaded to the server with a new updates.ini. After that the new ZIP files are generated which then include the new changelog.  :smile:


Quote from: Lancelot
10 minutes tutorial:
10 minutes to read and understand since long,
1 minute to understand since it is long but very simple:


Quote from: Galapo
Quote from: Lancelot
I thought this was all made on server side

Yes, package creation is all done directly on the server.

What I was meaning was that just prior to package creation I like to increase the version number of the changelog and write a note there to say that ZIP packages have been updated. Then the changelog is uploaded to the server with a new updates.ini. After that the new ZIP files are generated which then include the new changelog.  :smile:

I'll put some steps together with screenshots when I do it all next time.

Regards,
Galapo.


Quote from: Lancelot
I will write an easy way (5 minutes  :wink: ) for ChangeLog - zip dist.  :thumbsup:

I understand what you are after with changelog,
I do not know what to do this automatically on server side,
Here is what is available:

Giving example for Gena (valid for all ;) )

***
\Downloads\UtilsY\ChangeLog Editor -> Download

***
\UtilsY\ChangeLog Editor

+
"Interface Advanced --> " button.

+
"Download ChangeLog" button.

+
"Edit ChangeLog"  button.

+
Currently there is:
Code: [Select]
...
[News]
20161208 2321 (ChrisR)
2321_Update_Admin=ChrisR
2321_Update_Date=20161208
...

+
Top important is, DO NOT BREAK ChangeLog.
So this logic is partially wrong
Quote from: Galapo
I like to increase the version number of the changelog and write a note there to say that ZIP packages have been updated.

Do not increase  :wink:

+
Instead:
Add only 1 line before creating .zip on server side:

ex:
Code: [Select]
...
[News]
20161208 2321 (ChrisR)
2321_Update_Admin=ChrisR
2321_Update_Date=20161208
...

----------------------->

Code: [Select]
...
[News]
20161210 2321 (Galapo & Lancelot)
-----------------  Gena Zip Distribution UPDATED  -----------------
20161208 2321 (ChrisR)
2321_Update_Admin=ChrisR
2321_Update_Date=20161208
...

+
and finally
UtilsY\ChangeLog Editor --> "UPLOAD ChangeLog" button.


Tip:
You can make trials with "UPLOAD ChangeLog" button.  :thumbsup:
Currently "ChangeLog Editor" plugin only works with the project it is downloaded,
so
Gena\UtilsY\ChangeLog Editor
will only play with Gena ChangeLog  :wink:


Tip:
After or Before
"Interface Advanced --> " button.
Use "Download Updates" button.

"Download Updates" button works fine following ChangeLog,
 only when there is too many updates you need to wait sometime (winbuilder bug)
try  :thumbsup:












I do not have a request on that,
Just for info, following your post  :thumbsup:
Quote from: Galapo
What I was meaning was that just prior to package creation I like to
following your idea doing ChangeLog automatically on server side:

****************
If you like to do above on server side,
It is only adding 1 comment line to ChangeLog without breaking after [News]

I do not know how hard or easy to iniread - iniwrite , date , on serverside  :wink:

To make life easier for you on serverside, you can make an hardcoded entry:
ex:

instead of
Code: [Select]
...
[News]
20161210 2321 (Galapo & Lancelot)
---  Gena Zip Distribution UPDATED  ---
20161208 2321 (ChrisR)
2321_Update_Admin=ChrisR
2321_Update_Date=20161208
...

---> (iniread - iniwrite version removed)

Code: [Select]
...
[News]
20161210 (Galapo & Lancelot) --- Gena Zip Distribution UPDATED  ---
20161208 2321 (ChrisR)
2321_Update_Admin=ChrisR
2321_Update_Date=20161208
...

OR Fully hardcoded, (iniwrite date removed):

Code: [Select]
...
[News]
Galapo & Lancelot --- Gena Zip Distribution UPDATED  ---
20161208 2321 (ChrisR)
2321_Update_Admin=ChrisR
2321_Update_Date=20161208
...


Last one would be easiest I hope,
 only write IniTxtAddLine kind of harcoded thing on serverside....

:turtle:


Quote from: Lancelot
***
keep in mind,
D:\Oven becomes folder you do everything, build, test, upload, synchronize with server ...
This makes life easier and earns lots of valuable free time other than old school methods we used before.

in reality, organization is full combination of old school with new school,
 what you do before still valid  :thumbsup:


Quote from: Lancelot
Quote from: Lancelot
*
updated Utils\PluginManager now without version change,
removed to do and related stuff, add a note to history  :wink:

To practice, Hit compare button before download ;)

to see what changed on a plugin during a plugin development,
this way is faster than old school method  :wink:


Quote from: Lancelot
now new lesson:
http://theoven.org/index.php?topic=1949

"Move new plugin to project"
Section 1.1: plugin already have du buttons with only Yomi server.
ex:
Add "Plugin News" to Gena

Step 1: get full synchronization

*
Yomi\UtilsY\Update Projects : --> "Interface SE Gena" button

*
Gena: "blexactserver" button --> click "start" --> wait all success


Step 2: Add plugin to plugin list (updates.ini )

*
Yomi\UtilsY\Plugin News --> DL button (to be sure latest from server  :wink: )

*
Yomi\UtilsY\Update Projects : --> "Interface SE Gena" --> Gena: OpenDir button
go to folder
D:\Oven\Workbench\Common\Download_Gena\Projects\Gena\Utils

Copy
D:\Oven\Projects\Yomi\UtilsY\Plugin_News.Script
To
D:\Oven\Workbench\Common\Download_Gena\Projects\Gena\Utils\

*
Yomi\UtilsY\Update Projects : --> "Interface SE Gena" --> Gena: "Start Update" button


==> this will upload new plugin to server with conventional way you already know.
==> Step 1 and 2 are things we already do for years, conventional way. :wink:



Step 3: Update DU buttons.

For this case (there are other conditions)
*
Yomi\UtilsY\Update Projects : --> "Interface SE Gena" --> "Gena" link -> click to open on browser
find "Plugin News" plugin and copy link address,
it should be something like:
http://gena.cwcodes.net/Projects/Gena/Utils/BLABLABLABLABLABLABLA.Script

*
Yomi\UtilsY\Plugin News ---> open with editor
under [Main] Web1= paste new link for Web2=, result should be something like

Web1=http://yomi.cwcodes.net/Yomi/UtilsY/Plugin_News.Script
Web2=http://gena.cwcodes.net/Projects/Gena/Utils/BLABLABLABLABLABLABLA.Script

for some reasons this is better, organize this way:

Web1=http://gena.cwcodes.net/Projects/Gena/Utils/BLABLABLABLABLABLABLA.Script
Web2=http://yomi.cwcodes.net/Yomi/UtilsY/Plugin_News.Script


*
update [UploadXXX]
Code: [Select]
[UploadXXX]
Call,UploadXQ

Call,UploadX is to be used only for 1 link, optionally via Web1= inside a plugin

Call,UploadXMulti is to be used for multiple links, optionally via Web1= Web2= .....  inside a plugin :wink:

so only change to this -->

Code: [Select]
[UploadXXX]
Call,UploadXMultiQ


**
Step 4: Update new plugin to projects + update ChangeLog

*
Yomi\UtilsY\Plugin News
History059=Galapo Added to Gena Reply 7: http://theoven.org/index.php?topic=1949.msg22068#msg22068

*
Yomi\UtilsY\Plugin News ---> "Upload" button  :cool:


Server side finished  :clap: :clap: :clap: :clap:

**
Step 5:
I guess you may have
D:\Oven\Projects\Gena\Utils\Plugin_News.Script
now
If I am right ???? than only click refresh button of builder to get plugin available under builder\Gena\Utils

If I am wrong ???? than use Gena\Utils\Update Gena  :thumbsup:  to get plugin available under builder\Gena\Utils







*****
once du buttons operational, life easier during plugin updates  :wink:

*****
there are other conditions for plugins:
+ available on all projects
+ available only on 1 project (project special)
.....
I will use current post for such different conditions by only changing relevant lines.
so let me know if more or better instructions required....
(feel free to edit anything you figure out on current post)



****************
It should take 5 to 10 minutes if you only follow steps and
 with assumption you continue with the point we came with D:\Oven .

I believe after this lesson, you will have much better big picture about the development on this area.  :smile:


**
Since I spend free time on lesson, I will respond on email tutorial or any other thing after next wide free time....
 I currently make a quick run on theoven.org today  :wink:

See Yoıu
:turtle:




Quote from: Galapo
Quick question. On the VirtualBox Emulation plugin, the upload button is hidden on the interface. Is that for a particular reason? Can I upload a new version to all the servers?

Quote from: Lancelot
Quote from: Galapo
Is that for a particular reason?
when there is second interface (ex: advanced button)
sometimes upload and or compare buttons hidden behind second interface to keep 1st interface tidy.

upload buttons on 2nd interface of ALL plugins you will find around are operational.  :thumbsup:

or with your words:
Quote from: Galapo
Can I upload a new version to all the servers?
Yes  :wink: :thumbsup:

Ex: Virtual Box plugin:
after you modify and add history notes,
go to advanced interface
click "upload" button


==> How it works:
"upload" button designed to get
  A) 1st interface  [Settings_Default]
  B) Than upload   :wink:

with other words:
Call,Upload... designed to get [Settings_Default] section processed before upload

=====>
As a result, after you upload, you will see first interface on builder.  :wink:


Hopefully all clear.
:turtle:

Quote from: Lancelot
so you get your "What is [Settings_Default]" introduction lesson:


more words:
[Settings_Default] only works with "UPLOAD" button (Call,UploadX)

I plan it to be used with also "Download" (Call,DownloadX) but development of du ended due to low free time.
Currently all works fine, and can work better with more work on them.....

PS: That is the reason I mix old with new way, gaining advantages of both,
 When development of new finished old way can go to trash. Ex: Step 1-2 on previous lessons.

shortly: [Settings_Default] only works with  "UPLOAD" button (Call,UploadX)




**
More more words:
There is also
[Settings_Default]
[Settings_Default_Gena]
[Settings_Default_Yomi]
[Settings_Default_SE]
[Settings_Default_Win10PESE]
....

See codes at "Chief PluginCache" plugin

-->
first [Settings_Default] processed,
than [Settings_Default_BLABLABLA] processed,
during upload

===>
As a rule,
When required there is [Settings_Default]
If more required there is + [Settings_Default_BLABLABLA]

There should never be [Settings_Default_BLABLABLA] alone without [Settings_Default]
--> works but will cause trouble in future...

I hope all clear at first read after your practice with VirtualBox plugin,
This way current post is only a 2 minutes lesson.


Quote from: Galapo
One thing I've seen is that when uploading via the upload button the file indexlisting.html isn't modified with the plugin version (if changed). Is that by design, or something still on the to do list?

Quote from: Lancelot
something still on the to do list... but to me with very low priority  :wink:


Quote from: Lancelot
*
Lesson Call,CompareEdit - 1 minute
Test:
VirtualBox plugin
1) Download button
2) "More options" button --> Compare button

It should result with "identical"
well, BUT "More options" button make plugin different file than server file.
==>
Reason behind => Compare button - Call,CompareEdit also use "[Settings_Default]"  :wink:

This makes life easier to catch changes made by other on plugin.  :great: :great: :great:


Reminding:
[Settings_Default] not only for 2nd interface,
 see "Chief PluginCache"
  using "Chief PluginCache" compare button under Win10PESE or Gena will result identical,
   although settings of both projects different.  :wink:

Quote from: Lancelot
also see

Gena\Basic\PrepPE

upload and compare buttons hidden ;)

test compare button

[Settings_Default]
on this plugin
change it to first interface
+
also enable verify checkbox which I tend to forgot to enable in past.  :wink:


+++
so shortly,
[Settings_Default]
is also useful for some plugin default options,
 which is also being used widely on plugins...


******
It is also easy to add DU and Compare buttons to plugins,
 when required, (When you need to add DU buttons to plugins)
  instead of following other plugin codes,
    let me know, so I can give a quick 5 min lesson on this area, which makes life very easier.


Quote from: Lancelot
*
Reminding:
Reason behind "Bulletin Plugin" is be away from plugin responsibility, unlike plugins on server.
Also "Bulletin Plugin"s only for plugins attached to forum, so we are at least sure availability of plugins are continuous.

*
Lesson: Create new "Bulletin Plugin"

*
Use
\Downloads\UtilsY\PC Bulletin

*
\UtilsY\PC Bulletin
ex:
Prz42 AOMEI Partition Assistant
http://theoven.org/index.php?topic=1298

Download AOMEI_Partition_Assistant.7z
and extract -->
AOMEI_Partition_Assistant_Prz42.script


*
\UtilsY\PC Bulletin
+
FileName (Same with Plugin)
since Prz42 added Prz42 to plugin filename,
instead of
AOMEI_Partition_Assistant_Prz42
use
AOMEI_Partition_Assistant

+
Level 5

+
Author Name (Same with Plugin)
Prz42

+
Title (Same with Plugin)
since Prz42 added Prz42 to plugin title,
instead of
AOMEI Partition Assistant Pro Prz42
use
AOMEI Partition Assistant Pro

+
Web Link
http://TheOven.org/index.php?topic=1298

+
Put Location
\Projects\MyPlugins_Direct\AppsMy\HD Tasks

+
Goooooo
button

+
ReScan
button

==>
You will get Bulletin plugin available at:
AppsMy\2Prepare\"AOMEI Partition Assistant Pro - Prz42 - Bulletin"
-->
....\Projects\MyPlugins_Direct\AppsMy\2Prepare\AOMEI_Partition_Assistant_Prz42_Bulletin.Script

*
Ps:
Maybe I can create Bulletin plugins for other Prz42 plugins later,
 Well this requires another big free time.........
    For now I only continue from the point we came so far....

******
Quite a short lesson,
(2 minutes)
After you get this lesson, next lesson will be adding "NEW" plugin to Yomi,
and example will be AOMEI_Partition_Assistant_Prz42_Bulletin.Script   :wink:


See You  :xmas-beer:
:turtle:


edit: Attach AOMEI_Partition_Assistant_Prz42_Bulletin.Script you create on your next post.  :wink:


*
Quote from: Lancelot
****
Added DUC buttons to script.project
Keep in mind,
+
script.project is 1 per project like in all projects
+
due to nature of script.project, first download (Download Button) script.project from server,
than make edit ....
than compare (Compare Button) to be sure another admin not updated and everything ok
than upload (Upload Button)


*
Quote from: Lancelot
****
Main Configuration ---------- Description=(Win10PESE)

Build\Retrieve Tools ---------- Description=(Win10PESE)
Build\1 - Copy Files ---------- Description=(Win10PESE)
Build\2 - Shell & Config ---------- Description=(Win10PESE)
Build\Themes ---------- Description=(Win10PESE)

Shell\0 - Shell Loader ---------- Description=(Win10PESE)
Shell\1 - Explorer Shell ---------- Description=(Win10PESE)
Shell\Classic Shell ---------- Description=(Win10PESE)
Shell\Start10 ---------- Description=(Win10PESE)
Shell\StartIsBackPlusPlus ---------- Description=(Win10PESE)

Components\.Net Framework ---------- (Win10PESE - Win8.1SE - Win8PESE)
Components\Network ---------- (Win10PESE - Win8.1SE - Win8PESE)

Tweaks\Wallpaper ---------- Description=(Win10PESE)
Tweaks\Chinese IME ---------- Description=(Win10PESE)
Tweaks\Show Desktop ---------- Description=(Win10PESE)




Drivers\Audio ---------- Description=(Win10PESE - Win8.1SE - Win8PESE)
Drivers\Original display drivers
Description=(Win8.1SE - Win8PESE)
Description=(Win10PESE)
Drivers\Original NET drivers ---------- Description=(Win10PESE - Win8.1SE - Win8PESE)


Finals\Optimizations ---------- Description=(Win10PESE - Win8.1SE - Win8PESE)
Finals\Logon as Admin ---------- Description=(Win10PESE)




These SE plugins looks like each other in each SE project,
 I could never find time to unite them like on some other plugins,
  so single upload button update all plugins on servers
    and it seems I will not find such time in short future....
     So better have DUC buttons even with single server upload for today..

To give info to admin or user to say " "this plugin" is only for "this project" "
I put info to the head of Description=

Description=(Win10PESE)

I will do same on some other plugins in some near future (today, tomorrow)



Shortly:
When you see
Description=(Win10PESE)
or
Description=(Win7PESE )
...
on plugin, when you update plugin with upload button, be aware you are updating plugin on one project only.

Quote
Small DU memo:
 hidden plugins have upload button that always make them level=0 at [Settings_Default]  :wink:
  so unhide them do not effect our maintain with du buttons,
  only if required after upload check level= again to unhide etc...
« Last Edit: January 14, 2017, 12:25:36 PM by Lancelot »

Re: Call,Upload X
« Reply #2 on: December 05, 2016, 01:40:11 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Upload Tools Example:

upload hiderun_Info.txt to all servers.
(Tools\x86 and Tools\x64)


Code: [Select]
[Process]
If,ExistFile,%api%,AddVariables,%api%,ApiVar,GLOBAL
//--
Set,%FileName%,hiderun_Info.txt

Set,%From%,%BaseDir%\Projects\Tools\Gena\x64\hiderun_Info.txt
Set,%To%,http://gena.cwcodes.net/Projects/Tools/Gena/x64/hiderun_Info.txt

//Call,Download,%From%,%To%,3

//Call,UploadX,%From%,%To%
Call,UploadX,%From%,http://gena.cwcodes.net/Projects/Tools/Gena/x64/%FileName%
Call,UploadX,%From%,http://gena.cwcodes.net/Projects/Tools/Gena/x86/%FileName%
Call,UploadX,%From%,http://w7pese.cwcodes.net/Projects/Tools/Win7PESE/x64/%FileName%
Call,UploadX,%From%,http://w7pese.cwcodes.net/Projects/Tools/Win7PESE/x86/%FileName%
Call,UploadX,%From%,http://w8pese.cwcodes.net/Projects/Tools/Win8PESE/x64/%FileName%
Call,UploadX,%From%,http://w8pese.cwcodes.net/Projects/Tools/Win8PESE/x86/%FileName%
Call,UploadX,%From%,http://win81se.cwcodes.net/Projects/Tools/Win8.1SE/x64/%FileName%
Call,UploadX,%From%,http://win81se.cwcodes.net/Projects/Tools/Win8.1SE/x86/%FileName%
Call,UploadX,%From%,http://win10se.cwcodes.net/Projects/Tools/Win10PESE/x64/%FileName%
Call,UploadX,%From%,http://win10se.cwcodes.net/Projects/Tools/Win10PESE/x86/%FileName%


upload 7z.exe and 7z.dll to all servers.
(\Tools\)

Code: [Select]
[Process]
If,ExistFile,%api%,AddVariables,%api%,ApiVar,GLOBAL
//--
Set,%FileName%,7z.exe
Set,%From%,%BaseDir%\Projects\Tools\Gena\%FileName%
Set,%To%,http://gena.cwcodes.net/Projects/Tools/Gena/%FileName%
//Call,Download,%From%,%To%
//-
Run,%ScriptFile%,Upload_Now
//-
Set,%FileName%,7z.dll
Set,%From%,%BaseDir%\Projects\Tools\Gena\%FileName%
Set,%To%,http://gena.cwcodes.net/Projects/Tools/Gena/%FileName%
//Call,Download,%From%,%To%
//-
Run,%ScriptFile%,Upload_Now
//-

[Upload_Now]
//Call,UploadX,%From%,%To%
Call,UploadX,%From%,http://gena.cwcodes.net/Projects/Tools/Gena/%FileName%
Call,UploadX,%From%,http://w7pese.cwcodes.net/Projects/Tools/Win7PESE/%FileName%
Call,UploadX,%From%,http://w8pese.cwcodes.net/Projects/Tools/Win8PESE/%FileName%
Call,UploadX,%From%,http://win81se.cwcodes.net/Projects/Tools/Win8.1SE/%FileName%
Call,UploadX,%From%,http://win10se.cwcodes.net/Projects/Tools/Win10PESE/%FileName%
« Last Edit: February 13, 2017, 06:17:42 AM by Lancelot »

Re: Call,Upload X
« Reply #3 on: December 05, 2016, 01:40:22 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Reserved

Re: Call,Upload X
« Reply #4 on: December 05, 2016, 01:40:27 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Reserved

Re: Call,Upload X
« Reply #5 on: December 05, 2016, 01:40:34 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Reserved

Re: Call,Upload X
« Reply #6 on: December 05, 2016, 01:40:40 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Reserved

Re: Call,Upload X
« Reply #7 on: December 05, 2016, 01:40:45 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Reserved

Re: Call,Upload X
« Reply #8 on: December 05, 2016, 01:40:51 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Reserved

Re: Call,Upload X
« Reply #9 on: December 05, 2016, 01:40:57 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 7187
Reserved

 

Powered by EzPortal