Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 11-28-2015, 07:45 AM   #81
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

what make my script header easy to parse is the * at the start of the line : it is a nice way to not have error by parsing variables or functions names.
Putting this script header in all my scripts was how I prepare the future script downloader during this last months
(And it is alsways useful to have meta infos, even for users in order to see of tbeh have the required reaper version, or to see the screenshot, and the fprum thread, the author link etc)
X-Raym is offline   Reply With Quote
Old 11-28-2015, 01:11 PM   #82
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,910
Default

Status Update!

The extension now downloads the latest version of every packages it knows about to REAPER's resource folder:



TODO:

- Generate the package database from the git repository using the metadata parser
- Download and use the real database instead of the dummy one I used for testing
- Keep track of installed versions
- Download only the updated scripts
- A nice hideable dialog to show the download progress?

Last edited by cfillion; 12-06-2015 at 02:44 PM.
cfillion is offline   Reply With Quote
Old 11-28-2015, 01:25 PM   #83
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

Very promising cfillion, good work !
X-Raym is offline   Reply With Quote
Old 11-28-2015, 01:35 PM   #84
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Very nice!
Hope I'll find some time to add/update headers this weekend and continue edit headers later to make potential database works with versions, release dates, Reaper/sws requirements, etc
mpl is offline   Reply With Quote
Old 11-28-2015, 02:15 PM   #85
semiquaver
Human being with feelings
 
Join Date: Jun 2008
Posts: 4,923
Default

very cool indeed ! - thanks in advance to all involved
semiquaver is offline   Reply With Quote
Old 11-28-2015, 03:33 PM   #86
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,910
Default

Quote:
Originally Posted by mpl View Post
Hope I'll find some time to add/update headers this weekend and continue edit headers later to make potential database works with versions, release dates, Reaper/sws requirements, etc
I wrote a metadata parser and checker the other day (post 39) to help with this. The checker lists all the scripts with missing or bad metadata and provide a description of what is wrong so it's easier to fix the headers.

Example 1 (broken script): https://github.com/cfillion/test_rea...etadata/pull/2 ("Details" -> the script's error report is at the bottom)
Example 2 (fixed script): https://github.com/cfillion/test_rea...etadata/pull/1

May I set this setup in a pull request? To make this work, travis-ci.org will need access to the commit statuses on the repository so it can report back the result of the test script.

Last edited by cfillion; 11-28-2015 at 04:03 PM.
cfillion is offline   Reply With Quote
Old 11-28-2015, 05:58 PM   #87
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Sure you can, for example into /Test folder (create it). I give members "Write access", don't know is that means they can commit directly to master without approval.

Question to you: is it possible to collect my repo, X-Raym repo and common repo by downloaded/updater, so we (and maybe whoever in future) could develop our repos independently without commits/cloning to "common" repo (but with same header of course to make it compatible). That would be excellent solution at least for me.

Last edited by mpl; 11-28-2015 at 06:21 PM.
mpl is offline   Reply With Quote
Old 11-28-2015, 06:48 PM   #88
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,910
Default

Quote:
Originally Posted by mpl View Post
Sure you can, for example into /Test folder (create it). I give members "Write access", don't know is that means they can commit directly to master without approval.
Authorization request for Travis sent, working on the code now.
EDIT: Pushed on the "metadata" branch. Will make the pull request after setting up travis (it should report that every script has invalid version metadata ).

Quote:
Originally Posted by mpl View Post
Question to you: is it possible to collect my repo, X-Raym repo and common repo by downloaded/updater, so we (and maybe whoever in future) could develop our repos independently without commits/cloning to "common" repo (but with same header of course to make it compatible). That would be excellent solution at least for me.
I plan to let the user add repositories to the extension so the independent developers can maintain their own and the user can "subscribe" to them by adding an URL to a list or something like that.

The manager already put the scripts it installs in a dedicated directory with the repository name (currently "ReaScripts" is hard-coded) so, in the future when this feature is done, if a script is duplicated in different repositories it won't conflict (also it's nicer).

Last edited by cfillion; 11-28-2015 at 07:43 PM.
cfillion is offline   Reply With Quote
Old 11-28-2015, 07:08 PM   #89
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

Quote:
I plan to let the user add repositories to the extension so the independent developers can maintain their own
That would be really nice !!
This project is evolving nicely.
X-Raym is offline   Reply With Quote
Old 11-28-2015, 07:44 PM   #90
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

OK, no problem! I'll leave my scripts only in my repo to not duplicate them. Thanks!


Just you to know I dont speak English well, so to be clear, should I merge metadata to master or you have done already everything by yourself? (Didn't get completely how member permissions work)

Last edited by mpl; 11-28-2015 at 07:56 PM.
mpl is offline   Reply With Quote
Old 11-28-2015, 08:32 PM   #91
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,910
Default

Quote:
Originally Posted by mpl View Post
Just you to know I dont speak English well, so to be clear, should I merge metadata to master or you have done already everything by yourself? (Didn't get completely how member permissions work)
English is not my main language either (I speak French).

I'm using that branch as a work-in-progress for tuning the metadata tag syntax and adapting the script's headers. It will probably take a while before it's ready to be merged.

Currently the syntax I'm using is like this (similar to greasemonkey and doxygen):
https://github.com/cfillion/metaheader#readme

.lua file:
Code:
-- @version 1.0pre3

reaper.DoSomething();
.eel file:
Code:
/*
 * @version 1.0pre3
 */

DoSomething();
.eel file (alternative):
Code:
// @version 1.0pre3

DoSomething();
It's quite easy to parse and tell apart from normal comments not containing data, but I realise now that it's quite different from what everyone is used to...

Last edited by cfillion; 11-30-2015 at 12:10 AM.
cfillion is offline   Reply With Quote
Old 11-28-2015, 11:29 PM   #92
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Hmm, so X-Raym style header is ok for parsing (looks like first eel example)?
Code:
--[[ 
* value1_description: value
* value2_description: value
* value3_description: value
* value4_description: value
--]]
We can point a strongly required condition for this if needs for adding new scripts, I don`t see any problem here.
mpl is offline   Reply With Quote
Old 11-30-2015, 03:52 AM   #93
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

OK guys, did this:

to prevent duplicating scripts and for to make common repo place for scripts, which scattered all over the stash, forums etc. -
1) removed my stuff from repo
to make repos compatible however we will decide to download / sort scripts -
2) named folders in common ReaTeam repo like in X-Raym repo (except MIDI Editor - there are also not only MIDI Editor related scripts),
3) named folders in my repo like in X-Raym repo, add Track Editing folder (X-Raym, just let you know about name if you`ll decide sort your track related scripts also)
4) moved my test folder to another test repo, so now my pack have only working stuff and not for testing
5) add links in readme to my repo and X-Raym repo as big parts, I think extension should check for now 3 places - X-Raym repo, my repo and common repo (and maybe any other repo in future if it will be compatible by header and folders structure)
6) delete 1 Heda script and links to HeDa website. HeDa, can you update and sort you github stuff like X-Raym repo named folders and add header (at least empty) so we will can use your stuff also? If you`ll do so, I`ll add link to your github, so you`ll can keep scripts updated without pushing commits to common repo. OR can I upload your scripts to the repo (I`ll add header, will sort as needed etc so you will not need to do something)?

Last edited by mpl; 11-30-2015 at 06:28 AM.
mpl is offline   Reply With Quote
Old 11-30-2015, 06:44 AM   #94
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

@mpl
Nice thank you MIDI Editor scripts are the scripts that needs to be loaded in the MIDI editor section of the Acton list. That's why it is not simply MIDI (other MIDI related scripts can works in Arrange View).

Also, consider using Plural in folder names.


Some other GitHub repo:
X-Raym is offline   Reply With Quote
Old 11-30-2015, 07:15 AM   #95
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

In my repo and in common:

Renamed Track(s) Properties, sorted take scripts, add Takes Envelope (I guess it will grow up, so it needs to be separated from Takes Properties), Takes Properties, Take Editing, separate MIDI/MIDI Editor (I know russian guy who did some scripts to edit MIDI outside MIDI Editor).

Thinking about small repos... It will be hard to ask every guy to do different things (header and proper folder names, for example). So here I think it will be better ask guys to duplicate their scripts to common repo and let them member privileges to edit their stuff (so they shouldn`t worry about following different rules and we can manually fix something).

Edit
About /Functions and other imported stuff. Should it be in pack or distributed differently? What I got thinking about that:
- all scripts with imported functions should be merged OR placed in separated folders with imported functions;
- all scripts with imported graphics should be placed in separated folders;
- when installing/updating should be check which says "Install developer (/Function and /Templates) scripts and include into Action List", so there will be option for newcoming developers, who wants not only to use but to learn scripting also, this check should be unchecked by default to prevent user questions like "What spk77_class.lua do?"

Last edited by mpl; 11-30-2015 at 07:38 AM.
mpl is offline   Reply With Quote
Old 11-30-2015, 07:32 AM   #96
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,093
Default

First, let me say, mpl great initiative, bravo and thank you.

Quote:
Originally Posted by mpl View Post

Thinking about small repos... It will be hard to ask every guy to do different things (header and proper folder names, for example). So here I think it will be better ask guys to duplicate their scripts to common repo and let them member privileges to edit their stuff (so they shouldn`t worry about following different rules and we can manually fix something).
Since I'm mentioned in X-Raym's post above and 'small repos' also applies to me somehow, I'd be happy to contribute my scripts to this central repo if the 'ReaTeam' thinks they would fit.

And I'm totally fine with the above suggestion.

I'd need a 'step by step' though how to duplicate to the central repo, as I'm not too familiar with GitHub yet, I've just started using it.
nofish is offline   Reply With Quote
Old 11-30-2015, 07:49 AM   #97
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Thank you mpl and cfillion

I think I'll start to move my scripts to the github (spk1977/ReaScripts).

A "step by step instructions for GitHub" are certainly needed.
spk77 is offline   Reply With Quote
Old 11-30-2015, 07:56 AM   #98
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,917
Default

Quote:
Originally Posted by spk77 View Post
...

A "step by step instructions for GitHub" are certainly needed.

Yes please!

Plus any links to GitHub intro/familiarity/jargon articles/videos etc please.



>
__________________
Nathan, Lincoln, UK. | Item Marker Tool. (happily retired) | Source Time Position Tool. | CD Track Marker Tool. | Timer Recording Tool. | dB marks on MCP faders FR.
planetnine is offline   Reply With Quote
Old 11-30-2015, 08:02 AM   #99
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

noname, thanks.
I invite you to ReaTeam and added your scripts, except:
- nofish_Write tracknames to textfile - I would add this if there was native function to ask user for file destination (Save as window), showing in console is enough I guess since it can be easy copied from console and manually pasted to any text editor.
- nofish_Realtime clock - bug with folder name (first run I got // in the end of destination folder)
- nofish_Turn toolbar btn on when take pooled - 'BR_GetMidiTakePoolGUID' argument 1: expected MediaItem_Take* on first run, doesn`t work
I named nofish_Dynamic mixer (for use with toolbar button) so because user can be frustrated and don`t know how to stop this behaviour.

Looks I should add simple tutorial for using GitHub and its app, but I didn`t made any tutorial in my life))
I also don`t know too much about GitHub, here how I edit repo (I can be wrong but I guess it is only because I`m owner and members only can commit and wait for review and merging with master repo):


Dows anybody know how members privileges works? For now I set up write access for member. Does that mean they can edit master themself without my review?

spk77, yes, you have much scripts, but note, we will should add header to every script to make parsing metadata possible (can be useful for filter, for example to not install scripts, which unsupported by current REAPER/SWS version).

Last edited by mpl; 11-30-2015 at 08:19 AM.
mpl is offline   Reply With Quote
Old 11-30-2015, 08:34 AM   #100
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Quote:
Originally Posted by mpl View Post

Dows anybody know how members privileges works? For now I set up write access for member. Does that mean they can edit master themself without my review?
It seems to work like that - I edited the "ReaScripts/Various/spk77_Clock.eel"

Quote:
Originally Posted by mpl View Post
spk77, yes, you have much scripts, but note, we will should add header to every script to make parsing metadata possible (can be useful for filter, for example to not install scripts, which unsupported by current REAPER/SWS version).
I can wait until the header format is decided
spk77 is offline   Reply With Quote
Old 11-30-2015, 08:46 AM   #101
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

I think if eel with * is OK for cfillion then same lua format is ok also.

One more impotant thing I should say. Because of it is time we build something big, it needs to setup rules somehow for members/outside collaborators. Currenly I suggest at least this rules:
  • ScripterName_script name.lua format for names
  • self explainable name/title (except concept things, Quantize Tool or Dynamic Mixer for example)
  • Folders names (check now 3 repos - mine, X-Raym and common ReaTeam repo)
  • Header - check X-Raym repo > Templates
  • scripts with imported functions - merge it (for example /Various/spk77_Track IO.lua). updater will be hard to know which script is master and which is slave (OR maybe some parseable info file in directory with main and imported scripts should say to updater about that?)
  • same with imported graphics
  • may be some file which contain all info about scripter (donation, links) and this should be used by updater/manager extension(?)
  • defered scripts should be able to stop somehow (by dedicated action, for example) to prevent user frustration
  • scripts should have as less bugs as possible of course and tested before adding/updating in repo
  • add customizable scripts to /Templates(?)
mpl is offline   Reply With Quote
Old 11-30-2015, 08:51 AM   #102
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

Here it for Lua

Code:
--[[
 * ReaScript Name: Go to start of previous region
 * Description: Move edit or play cursor to previous region. Move view and seek play.
 * Instructions: Place edit cursor inside a region. Run.
 * Screenshot: http://
 * Author: X-Raym
 * Author URl: http://extremraym.com
 * Repository: GitHub > X-Raym > EEL Scripts for Cockos REAPER
 * Repository URl: https://github.com/X-Raym/REAPER-EEL-Scripts
 * File URl: https://github.com/X-Raym/REAPER-EEL-Scripts/scriptName.eel
 * Licence: GPL v3
 * Forum Thread: Scripts: Transport (various)
 * Forum Thread URl: http://forum.cockos.com/showthread.php?p=1601342
 * REAPER: 5.0
 * Extensions: None
--]]
 
--[[
 * Changelog:
 * v1.0 (2015-11-27)
    + Initial Release
--]]
for EEL, just replace --[[ by /**

Screenshot field is facultative, just like File direct URL. I guess we don't need it anymore, and it is a bit too painful to update everytime ^^

We could also imagine other faculative field like a Donation field.
X-Raym is offline   Reply With Quote
Old 11-30-2015, 08:55 AM   #103
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

@mpl
Quote:
scripts with imported functions - merge it
I think it is better to have the scripts (main and external classes) contain in one sub subdfolder, like a little plugin.
for Track IO subfolder into Tracks Properties

Some huge scripts are easier to maintain in several files than a several thousand lines big one.
Also, best place to have all external media required (image etc).
X-Raym is offline   Reply With Quote
Old 11-30-2015, 09:00 AM   #104
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Then it should be also file which says to extension "This folder has script with main and external classes. Please add to action list only Main.lua as main script and don`t add external classes" something like this

class_def.txt :
Code:
master=main.lua
external=class.lua,sliderclass.lua,menuclass.lua
graphics=slider.png

Last edited by mpl; 11-30-2015 at 09:12 AM.
mpl is offline   Reply With Quote
Old 11-30-2015, 09:17 AM   #105
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

@mpl
or we can prefix.suffix classes function by a certain character or a certain word. These would be excluded from importing without even opening it.

What about all scripts that ends with _class ?

exemple

Code:
author_My super finctions library_class.lua
spk77_Slider functions_class.lua
Should be enough
X-Raym is offline   Reply With Quote
Old 11-30-2015, 09:26 AM   #106
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

You`re right, it`s better! But than means spk77 and you will should rewrite some code for this (I don`t know, who else used importing?).
mpl is offline   Reply With Quote
Old 11-30-2015, 09:45 AM   #107
heda
Human being with feelings
 
heda's Avatar
 
Join Date: Jun 2012
Location: Spain
Posts: 7,217
Default

How to include external files that are also needed for the script to work? In my regions from items script for example, to install it you need also to put a custom cursor file inside the REAPER's cursors folder. Which is not in the same folder where the lua script would go.
I've been quite busy and not able to do scripting lately as you may have noticed :/ I hope to find time to put all in order in github once everything is defined. I'm glad to see the X-Raym headers finally becoming a standard
heda is offline   Reply With Quote
Old 11-30-2015, 09:53 AM   #108
planetnine
Human being with feelings
 
planetnine's Avatar
 
Join Date: Oct 2007
Location: Lincoln, UK
Posts: 7,917
Default

Quote:
Originally Posted by X-Raym View Post
@mpl

I think it is better to have the scripts (main and external classes) contain in one sub subdfolder, like a little plugin.
for Track IO subfolder into Tracks Properties

Some huge scripts are easier to maintain in several files than a several thousand lines big one.
Also, best place to have all external media required (image etc).

This makes sense to me.

I did try to create a subfolder in the "Stretch Markers" folder in ReaTeam so I could add my stretch marker scripts/actions, but I couldn't find a way to do it. I oresumed I didn't have the right permissions.




>
__________________
Nathan, Lincoln, UK. | Item Marker Tool. (happily retired) | Source Time Position Tool. | CD Track Marker Tool. | Timer Recording Tool. | dB marks on MCP faders FR.
planetnine is offline   Reply With Quote
Old 11-30-2015, 09:58 AM   #109
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

planetnine,



heda, I think here could be two ways:
- just putting all needed files in folder and add file with instruction why all these files placed here
- add "/Additional Stuff/Cursors" folder to keep there clearly described all scripts related stuff (like HeDa_Regions&Markers from items - pointinghand.cur maybe)

But I found first way more logical and cleaner.

Last edited by mpl; 11-30-2015 at 10:08 AM.
mpl is offline   Reply With Quote
Old 11-30-2015, 10:19 AM   #110
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Very qiuck and rougly recorded tutorial how to use GitHub app:
mpl is offline   Reply With Quote
Old 11-30-2015, 10:23 AM   #111
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 9,866
Default

One note about git:

Be careful, don't move files on your computer, you will lose the history linked to these files, as it will be considered as deleting the source file, and creating a new file (in the destination folder), rather than "moving".

You can use the Online repo to do such thing, or the console,
I can't tell you how, I have to check every time I want to do it ^^
X-Raym is offline   Reply With Quote
Old 11-30-2015, 10:30 AM   #112
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

^^Agree.
I sorted everything in my and common repos hardly yesterday since I didn`t care about history. But yes, to keep history now we need to do moving online or something like
Code:
mkdir lib
git mv hello.html lib
git status
in console, if I`m not wrong (maybe "move" for Windows instead OSX-like "mv")

Last edited by mpl; 11-30-2015 at 10:36 AM.
mpl is offline   Reply With Quote
Old 11-30-2015, 10:44 AM   #113
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Maybe we should make "test" and "examples" -folders. We could share our code snippets there and also ask for help.
Or how should this be done?
spk77 is offline   Reply With Quote
Old 11-30-2015, 10:56 AM   #114
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

As I said above:
Quote:
- when installing/updating should be check which says "Install developer (/Functions and /Templates) scripts and include into Action List", so there will be option for newcoming developers, who wants not only to use but to learn scripting also, this check should be unchecked by default to prevent user questions like "What spk77_class.lua do?"
we could add these folders, but somehow exclude it from regular install. And for testing we could add another dedicated repo (not folder, like ReaTeam/ReaScripts-Test/spk77/your temporary test scripts), where scripts sorted by username. So we will have one repo for sharing (for user download) and repo for developing. Today I did this for myself: https://github.com/MichaelPilyavskiy?tab=repositories

Last edited by mpl; 11-30-2015 at 11:02 AM.
mpl is offline   Reply With Quote
Old 11-30-2015, 11:04 AM   #115
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Quote:
Originally Posted by mpl View Post
As I said above:
we could add these folders, but somehow exclude it from regular install. And for testing we could add another dedicated repo (not folder, like ReaTeam/ReaScripts-Test/spk77/your temporary test scripts), where scripts sorted by username.
Yes, a testing repo would be good.
spk77 is offline   Reply With Quote
Old 11-30-2015, 11:08 AM   #116
mpl
Human being with feelings
 
mpl's Avatar
 
Join Date: Oct 2013
Location: Moscow, Russia
Posts: 3,956
Default

Done https://github.com/ReaTeam/ReaScript-Test
So here you or another member can share whatever he needs inside user folders (here sorting by category at high level not needed, I think)
mpl is offline   Reply With Quote
Old 11-30-2015, 11:20 AM   #117
spk77
Human being with feelings
 
Join Date: Aug 2012
Location: Finland
Posts: 2,668
Default

Thanks
Added "spk77/EEL" folder.

This might be a good repo for practicing how to actually use the GitHub
spk77 is offline   Reply With Quote
Old 11-30-2015, 12:12 PM   #118
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,093
Default

Quote:
Originally Posted by mpl View Post
I invite you to ReaTeam and added your scripts, except:
- nofish_Write tracknames to textfile - I would add this if there was native function to ask user for file destination (Save as window), showing in console is enough I guess since it can be easy copied from console and manually pasted to any text editor.
- nofish_Realtime clock - bug with folder name (first run I got // in the end of destination folder)
- nofish_Turn toolbar btn on when take pooled - 'BR_GetMidiTakePoolGUID' argument 1: expected MediaItem_Take* on first run, doesn`t work
I named nofish_Dynamic mixer (for use with toolbar button) so because user can be frustrated and don`t know how to stop this behaviour.
Thanks, I'll try to fix theese issues.
nofish is offline   Reply With Quote
Old 11-30-2015, 01:03 PM   #119
Sexan
Human being with feelings
 
Sexan's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 4,528
Default

.........

Last edited by Sexan; 12-03-2015 at 02:57 PM.
Sexan is offline   Reply With Quote
Old 11-30-2015, 01:10 PM   #120
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,910
Default

I got the database generator tool working yesterday. It remembers the last commit it checked so it doesn't rescan the same files over and over (thanks to git).
For now it only supports @author, @version and @changelog metadata (I'll start adding them to the scripts in the metadata branch). More can be added later when the extension gains new features.

With this the full distribution process works like this:

git repository -> metadata header at the top of the scripts -> database generator -> index.xml -> C++ extension on REAPER -> reascripts installed and updated on the user's computer

------

Quote:
Originally Posted by mpl View Post
I think if eel with * is OK for cfillion then same lua format is ok also.
Yes it's ok. Also unsupported metadata does not need to be changed (until it's supported) or removed. This is a valid header for a script (from X-Raym's example):

Code:
--[[
 * @author X-Raym
 * @version 1.0
 * @changelog (2015-11-27)
 *   + Initial Release
 *
 * ReaScript Name: Go to start of previous region
 * Description: Move edit or play cursor to previous region. Move view and seek play.
 * Instructions: Place edit cursor inside a region. Run.
 * Author URl: http://extremraym.com
 * Repository: GitHub > X-Raym > EEL Scripts for Cockos REAPER
 * Repository URl: https://github.com/X-Raym/REAPER-EEL-Scripts
 * File URl: https://github.com/X-Raym/REAPER-EEL-Scripts/scriptName.eel
 * Licence: GPL v3
 * Forum Thread: Scripts: Transport (various)
 * Forum Thread URl: http://forum.cockos.com/showthread.php?p=1601342
 * REAPER: 5.0
 * Extensions: None
--]]
In fact it will parse as long there is a @key (and value, if needed) somewhere in the line. Also, parsing stops at the first blank line found:

Code:
-- (leading text is ignored) @key value <-- key and value recognized as metadata

-- @key value <-- ignored because it's after the first blank line
------

Quote:
Originally Posted by mpl View Post
scripts with imported functions - merge it (for example /Various/spk77_Track IO.lua). updater will be hard to know which script is master and which is slave (OR maybe some parseable info file in directory with main and imported scripts should say to updater about that?)
As long as the manager installs every script in a given repository then this is not an issue right? If it's decided to let the user choose which scripts are installed then a dependency system can solve this:

Code:
@depends Library/Console Messages.lua
Quote:
Originally Posted by mpl View Post
[*]same with imported graphics
Mmh... Non-script files (not .lua or .eel) are currently ignored. I can quickly add support for more extensions (png, jpeg etc) but I don't think this is the right way: what if a specific script requires a special type of file to work?

What about something like this:

Code:
--[[
 * @depends Resources/Folder With The Script Name/backgroung.jpg
 * @depends Resources/Folder With The Script Name/fader.png
 * @depends Resources/Folder With The Script Name/names.txt
--]]
These extra files would be included in the distribution as long as at least one script @depends on them.

------

mpl, can you accept the authorization request for Travis-CI on ReaTeam I sent the other day? I think it would be great to have the pull requests tested early before they are merged.

Last edited by cfillion; 11-30-2015 at 10:08 PM.
cfillion is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:38 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.