Topic: Request: Build Button Syntax  (Read 2072 times)

Request: Build Button Syntax
« on: December 27, 2017, 08:52:16 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
Hi ied206,

We missed a syntax to build project.

Better PEBakery have syntax to Build project. (Same with Build Button of PEBakery)

ex:
System,Build,%BaseDir%\Projects\Win10PESE\script.project

+
Most important :
This way we can start build multiple projects at once via a plugin.
ex:
Code: [Select]
[Process]
System,Build,%BaseDir%\Projects\Win10PESE\script.project
System,Build,%BaseDir%\Projects\Win8.1SE\script.project
System,Build,%BaseDir%\Projects\Win8PESE\script.project
System,Build,%BaseDir%\Projects\Win7PESE\script.project
System,Build,%BaseDir%\Projects\Gena\script.project
Message,"All Builds Finished",Information

:turtle:
« Last Edit: December 27, 2017, 09:02:57 PM by Lancelot »

Re: Request: Build Button Syntax
« Reply #1 on: December 27, 2017, 09:23:25 PM »

Homes32

  • Code Baker
  • Chef
  • ***
  • Date Registered: Dec 2010
  • Posts: 177
I'm assuming you are talking about chaining a bunch of builds together so they run one after the other.

What happens if one of the builds fails? Do you abort the entire chain? or just skip on to the next build? Sounds like a better solution would be to automate builds via command line with .cmd/.au3 so you could do your own %exitCode% checking and decision making.

wb had a similar "unattended" mode...
Code: [Select]
Launcher.exe --build="C:\PEBakery\Projects\Win7PE" --source="C:\Images\Win7" --target="C:\PEBakery\Target\Win7PE" --ISO="C:\PEBakery\ISO\Win7PE_x86.iso"

of course there is that pesky UAC dialog to work around :mad: so you would have to remember to run your script as admin in order to avoid having to click "yes" every new build...
« Last Edit: December 27, 2017, 09:27:49 PM by Homes32 »

Re: Request: Build Button Syntax
« Reply #2 on: December 27, 2017, 09:51:10 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
What happens if one of the builds fails?
For now all ends as expected.

Edit Start:
For now either all ends as expected or project build ends and next line on plugin
following above example
Code: [Select]
System,Build,%BaseDir%\Projects\Win10PESE\script.project
--> build unsuccessfull go to next line
Code: [Select]
System,Build,%BaseDir%\Projects\Win8.1SE\script.project
--> build continues
OR
For now either all ends as expected or project build ends and next line on plugin
System,Build,%BaseDir%\Projects\Win10PESE\script.project
--> build unsuccessfull all ends

I feel easiest way with such syntax all ends as expected.
maybe going next line is easier to implement PEBakery following %ExitCode%

It is about internal design of PEBakery which ied206 better decide for a simple syntax.

Edit Finish:

-->

Nothing complicated.
Keep things simple.

*
Sounds like a better solution would be to automate builds via command line with .cmd/.au3 so you could do your own %exitCode% checking and decision making.
Adding Parameter Support to PEBakery is out of current topic, and I do not agree with such thing about my request.
If you need such thing useful open a topic.
http://theoven.org/index.php?topic=2358.0

*
Yes I know wb command line, it is not organized correctly, make things complicated than simple and even not required at all.
edit: and this will not work with default projects here anymore.

*
It is a request for simple syntax equal to "Build button" button of PEbakery Homes32
No need to get things complicated again and again and again ...

:turtle:
« Last Edit: December 27, 2017, 10:04:10 PM by Lancelot »

Re: Request: Build Button Syntax
« Reply #3 on: December 27, 2017, 10:03:46 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
Hi Homes32,

see edit on previous post.

:turtle:

Re: Request: Build Button Syntax
« Reply #4 on: December 31, 2017, 06:38:36 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
Hi ied206,

+
Most important :
This way we can start build multiple projects at once via a plugin.

just another reason after this topic http://theoven.org/index.php?topic=2292.0 came to my mind :

We designed SE and Gena projects with plugins to use same \Programs\ folder
ex:
One can build all projects with x86 x64 sources
and put all to one usb sharing same \Programs\ folder
-->
This Gain very big space compared to using different "Programs" folder.

Projects designed that way, rest is on end users hand to do such thing.
 Most naturally do not use that feature of SE and Gena projects since there is no such plugin.
  (nobody yet ask for feedback for a problem related to this feature)
-->
We could not create a plugin and test such feature widely and get feedback ....
 So it is there since 8 years waiting
  1) a new builder -> so we can create a plugin.
  2) an advanced user that realize there is such feature, use that way, and feedback.

:turtle:

Re: Request: Build Button Syntax
« Reply #5 on: January 01, 2018, 03:32:51 PM »

ied206

  • Moderator,
  • Chef
  • *****
  • Location: South Korea
  • Date Registered: Jan 2014
  • Posts: 257
PEBakery is designed under an assumption which only one interpreter engine runs at a moment.
Supporting invokation of a build while engine is already running will require nested engine runs.
So implementing this will take too much time, I am afraid.

Under this reason I like Homes32's approach.
« Last Edit: January 01, 2018, 03:33:29 PM by ied206 »

Re: Request: Build Button Syntax
« Reply #6 on: January 02, 2018, 03:46:41 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
Under this reason I like Homes32's approach.
Well, to practice some of troubles:
+
extract Gena Appetizer to an empty folder
+
Add
BuilderSE.exe
BuilderSE.ini
+
double click BuilderSE.exe and "Config Source" and select your source
+
Select "Basic" folder at left (This is VERY IMPORTANT)
+
click "big blue button"



Select "Basic" folder at left -> to workaround such cases:
==> if you have error on 2nd builder screen, try big blue again.
==> if you have error on 1st builder screen, no problem, 2nd builder screen will do the build
=====> on both cases , better have 1st builder screen not at "Main Plugin"

----->
If things goes well on your side,
 you will notice each time you use BuilderSE.exe to build Gena which triggers BuildGena.exe
   It will take time to scan all plugins ....
-> PEBakery is faster to scan all plugins but think about including all SE and Full Gena with Full Yomi ....
--> at this point PEBakery will be superior and faster to build 2nd 3rd 4th 5th ... projects

to get similar work with PEBakery, We need portable features with PEBakery.
ex:
Dependending on PEBakery executable name :
ex:
Launcher.exe

DataBase files should also portable following executable name
ex:
Launcher_PEBakeryCache.db
Launcher_PEBakeryLog.db

Also .ini file should follow Launcher.exe
Launcher..ini

as a result:
Launcher2.exe
-->
Launcher2_PEBakeryCache.db
Launcher2_PEBakeryLog.db
Launcher2.ini


***
More important,
as written on
Request: PEBakery Batch topic
http://theoven.org/index.php?topic=2350.0
-->
unlike cmd do not autoexecute [process], to avoid AV adding PEBakery malicious, dangerous software etc.
I do not like such approach with parameter at command line to auto build.

This feature of the old builder was not popular, but if it exists with PEBAkery and PEBakery getting popular, will be more used.
--> It will be first used by replica of projects  ex: c't NotFall (which is renamed of Win10PESE) and other anonymous users at forums or web.
----> And much later when more known, can be used for dirty stuff to attack company pc .......






So implementing this will take too much time, I am afraid.
Well we can wait, nothing urgent.  :wink:


*
Only temporary good option to me is, PEBakery having a special menu (Utility -> "Build ALL" tab) to build projects with a given order.

ps: hidden behind Utility -> "Build ALL" tab to avoid new users mistakes ex: http://theoven.org/index.php?topic=2363.msg25492;topicseen#msg25492

keep in mind, some projects have Selected=None (MyPlugins, MyPlugins_Direct, Yomi)
where others have Selected=True (Gena, SE...)
So
Utility -> "Build ALL" tab
will only show projects with Selected=True or Selected=False
OR
another design that fits same goal -> Build only selected projects with desired order.

 :wink:

PEBakery is designed under an assumption which only one interpreter engine runs at a moment.
I wish you were more around during design.  :wink: :cool:

:turtle:

Edit:
Removed .exe from example
« Last Edit: January 02, 2018, 07:36:55 PM by Lancelot »

Re: Request: Build Button Syntax
« Reply #7 on: January 02, 2018, 03:59:05 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
*
Only temporary good option to me is,
Just to underline,
Idea is only demonstrate temporary good option with reasons behind.
When PEBakery implements such syntax feature in FAAAAR FUTURE, It should be deprecated.


So implementing this will take too much time, I am afraid.
Well we can wait, nothing urgent.  :wink:
Just to underline again,
To gain ied206 time and ied206 focus on other important stuff, it can wait.

:turtle:

Re: Request: Build Button Syntax
« Reply #8 on: January 02, 2018, 05:52:55 PM »

Lancelot

  • Moderator, Gena Baker
  • Grand Chef
  • *****
  • Date Registered: Sep 2010
  • Posts: 10350
Just another temporary idea If it is easy to implement

*
Since Request is simply replicate "Build" button behavior on different projects,
 ( Instead of someone use AutoIT to click "Next project" + "Build" after each build )

Idea is:
System,Builds,%BaseDir%\Temp\Builds.ini,INISection

and inside Builds.ini
Code: [Select]
[INISection]
System,Build,%BaseDir%\Projects\Win10PESE\script.project
System,Build,%BaseDir%\Projects\Win8.1SE\script.project
System,Build,%BaseDir%\Projects\Win8PESE\script.project
System,Build,%BaseDir%\Projects\Win7PESE\script.project
System,Build,%BaseDir%\Projects\Gena\script.project

or

Code: [Select]
[INISection]
01=%BaseDir%\Projects\Win10PESE\script.project
02=%BaseDir%\Projects\Win8.1SE\script.project
03=%BaseDir%\Projects\Win8PESE\script.project
04=%BaseDir%\Projects\Win7PESE\script.project
05=%BaseDir%\Projects\Gena\script.project

OR I feel better with hardcoded path

Code: [Select]
[INISection]
System,Build,D:\TheOven\Projects\Win10PESE\script.project
System,Build,D:\TheOven\Projects\Win8.1SE\script.project
System,Build,D:\TheOven\Projects\Win8PESE\script.project
System,Build,D:\TheOven\Projects\Win7PESE\script.project
System,Build,D:\TheOven\Projects\Gena\script.project

or

Code: [Select]
[INISection]
01=D:\TheOven\Projects\Win10PESE\script.project
02=D:\TheOven\Projects\Win8.1SE\script.project
03=D:\TheOven\Projects\Win8PESE\script.project
04=D:\TheOven\Projects\Win7PESE\script.project
05=D:\TheOven\Projects\Gena\script.project

or
..

Then go to next line after System,Builds,%BaseDir%\Temp\Builds.ini,INISection

===>
Code: [Select]
System,Builds,%BaseDir%\Temp\Builds.ini,INISection
simply takes info at Builds.ini to memory ( Builds.ini can be deleted after command )
And very simply click "Build" button of relevant line project with given order.
->
this should fit PEBakery current design.
+ one interpreter engine runs at a moment. (only order given by a special command for Build)
+ Does not require PEBakery have portable features
+ no need recreate database
+ Also fits concerns I wrote in previous posts

****
If it is easy to implement

:turtle:

Edit:
Improved example with hardcoded path

Edit:
Add:

Then go to next line after System,Builds,%BaseDir%\Temp\Builds.ini,INISection
« Last Edit: January 04, 2018, 10:04:36 AM by Lancelot »

 

Powered by EzPortal