SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV Github Development

Notices

SageTV Github Development Discussion related to SageTV Open Source Development. Use this forum for development topics about the Open Source versions of SageTV, hosted on Github.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 12-31-2015, 09:00 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
V9 of various plugins are coming... but...

Since SageTV has been opened sourced, there has been more interest (at least from me) to update some of the plugins that I work on (or use).

I've deprecated Phoenix UI because the UI maintainers have moved on, and I switched to Gemstone. I'm been pleased with Gemstone.

Jusjoken has been actively updating the Phoenix core code and he's recently added new views for Missing TV Episodes and he's added Collection support. In doing this we needed to move to the latest version of the TheMovieDB apis, which required newer versions of other jars, etc, etc. This plugin update is likely to break some other plugins that depend on http client.

Because of this, the new Phoenix Core will be a V9 ONLY plugin. ie, you can't install it on V7, and the V7 version is no longer exist.

Because of how SageTV manages plugins, there can only be a single version for a plugin id. So, once the new Phoenix Core plugin is released, you will no longer be able to update/install Phoenix in V7. In my mind, this isn't a big deal, because either you have Phoenix installed on V7 and you'll continue to use that version, or if you want to move to Gemstone (or use Phoenix features), you'll move to V9.

That being said, I've mentioned before that I really do think that the Open Source version of SageTV SHOULD have a separate SageTVPlugins.xml from the V7 version and the that the V9 version would "inherit" V7 plugins, and override the ones are updated in V9. This would require Jeff to update the plugin submit process to separate V7 and V9 submissions or the open source community would need to build a plugin repository that handles submissions, etc.

We could create new plugin ids for the V9 phoenix (and all dependent libraries) but that's just crazy... and we'd end up with the possibilty that people would install both phoenix-core and phoenix-core-sagetv9 and they'd clobber each other, or end up with duplicate jars in the JARs area, etc.

Jusjoken has stated that he'll be making the new Gemstone a V9 only plugin as well, which, he'd have to do, if it depends on Phoenix (which it does).

I'm also working on updating the Jetty Plugin to Version 9, which will be a SageTV 9 only update as well. (BMT is dead, but not sure if the mobile web and the main web will be updated to work with the V9 server, or if we just start over and build a single web app that encompases, mobile, web and bmt applications -- I'm leaning towards the latter)

And I have a new plugin, PushBullet for SageTV, that will be a V9 only plugin, since it uses some APIs that are not available in V7. This plugin basically pushes SageTV System Messages (Halt Detected, etc) to your phone/desktop, if you have the PushBullet app (or extension) installed.

I'm also working on updating the sagex-api plugin and it move to a V9 version as well.

So, I guess the good news is that there are new and updated plugins coming, but, because of how intertwined V7 and the Open Source versions are (ie, sharing the same plugins), then V7 is about to get a lot less functional.

This really isn't a question of not wanting to support V7... it's just that once you move a plugin to depend on V9, V7 can no longer access the V7 version of that plugin, and anything that depended on that V7 version can not be installled, etc.

I guess I'm wondering if it's time to simply change the V9 code to support additional plugin repositories (something I've suggested in the past), and then maintain a separate SageTVPluginsV9.xml in a github repository for V9 plugin updates. This allows V7 to carry on, unbroken, while V9 can evolve without impacting V7.
Reply With Quote
  #2  
Old 12-31-2015, 09:21 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Re: open source plugin repository, I think we can likely go away completely from the web form, and simply edit the SageTVPluginsV9.xml directly in github. This would allow community management, and allow us to make global changes in the future (like say we implement a way to have auto-mirroring of the plugins, for instance) without needing the original dev to be involved.

First step should be easy - adding a loader for SageTVPluginsV9.xml to the code. It essentially would be a duplicate of how SageTVPluginsDev.xml is loaded in, but done before the Dev one.

SageTVPlugins.xml is loaded.
SageTVPluginsV9.xml is loaded and merged in, replacing any elements with the same ID.
SageTVPluginsDev.xml is loaded and merged in, replacing and elements with the same ID.

Distributing and updating the V9.xml is a separate issue, and can be handled separately after the plugin core is made to look at it.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room

Last edited by Fuzzy; 12-31-2015 at 09:42 AM.
Reply With Quote
  #3  
Old 12-31-2015, 09:36 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
Quote:
Originally Posted by Fuzzy View Post
Re: open source plugin repository, I think we can likely go away completely from the web form, and simply edit the SageTVPlugins9.xml directly in github. This would allow community management, and allow us to make global changes in the future (like say we implement a way to have auto-mirroring of the plugins, for instance) without needing the original dev to be involved.

First step should be easy - adding a loader for SageTVPlugins9.xml to the code. It essentially would be a duplicate of how SageTVPluginsDev.xml is loaded in, but done before the Dev one.

SageTVPlugins.xml is loaded.
SageTVPlugins9.xml is loaded and merged in, replacing any elements with the same ID.
SageTVPluginsDev.xml is loaded and merged in, replacing and elements with the same ID.

Distributing and updating the 9.xml is a separate issue, and can be handled separately after the plugin core is made to look at it.
That is my thinking as well, since the core code is already doing this when it loads SageTVPluginsDev.xml.

Let's see what Jeff has to say
Reply With Quote
  #4  
Old 12-31-2015, 09:42 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by stuckless View Post
That is my thinking as well, since the core code is already doing this when it loads SageTVPluginsDev.xml.

Let's see what Jeff has to say
Well, I just looked, and haven't tested yet, but this looks rather easy (for step 1 at least).

https://github.com/CraziFuzzy/sagetv...01da9931aa46d3
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #5  
Old 12-31-2015, 12:26 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
Quote:
Originally Posted by Fuzzy View Post
Well, I just looked, and haven't tested yet, but this looks rather easy (for step 1 at least).

https://github.com/CraziFuzzy/sagetv...01da9931aa46d3
Yeah that's good for a local file, but we to implement a hosted version, like the SageTVPlugins.xml where it checks the md5 to determine if we need to update etc.

I'll spend some time and make the changes, and see if Jeff agrees.
Reply With Quote
  #6  
Old 12-31-2015, 03:27 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
So, I made the core changes to support additional repos... I basically just refactored the core code that does the checking and downloading of the SageTVPlugins.xml to accept parameters for the url, md5 url, and the local filename.

The repo configuration is stored in the Sage.properties, and this is the documentation in the file.

Code:
  // The Repo Properties contains a set of Plugin Repositories that SageTV will periodically check for new
  // and updated SageTV Plugins.
  // The main key is sagetv_repos
  // Each Repo has a unique id, and contains the URL for the REPO, md5, and the local filename
  // sagetv_repos/xxxx/url=Plugin Repo URL
  // sagetv_repos/xxxx/md5=Plugin Repo MD5
  // sagetv_repos/xxxx/local=The Local Filename to use for this repo
  //
  // There are reserved REPO IDs, v7, and v9, with future reserved ids of v10, v11, etc.
  // sagetv_repos/v7/url=Plugin Repo URL
  //
  // When SageTV loads the REPO plugins, it will read v7, then v9, and then any alternate repos
  // listed in the sagetv_additional_repo_list, which is a comma separated list of alternate repos and
  // the order in which to read them.
  // Finally, SageTVPluginsDev.xml is read last, as means to allow devs to forcefully overrade the plugins
  // listed in the plugin system.

  // Comma separated list of alternate repos.  Should not contain, v7, v9, etc, but can contain additional
  // configured repos.  Configured repos would be configured under the sagetv_repos parent key.
This allows, that in the future, we can change the location of the v7 (and v9, etc) repo urls, should be ever need to. It also allows for custom repos that developers can add for beta testing, etc.

The default values for v7 and v9 repos (in the code) is
Code:
sagetv_repos/v7/local=SageTVPlugins.xml
sagetv_repos/v7/md5=http\://download.sagetv.com/SageTVPlugins.md5.txt
sagetv_repos/v7/url=http\://download.sagetv.com/SageTVPlugins.xml
sagetv_repos/v9/local=SageTVPluginsV9.xml
sagetv_repos/v9/md5=https\://raw.githubusercontent.com/OpenSageTV/sagetv-plugin-repo/master/SageTVPluginsV9.md5
sagetv_repos/v9/url=https\://raw.githubusercontent.com/OpenSageTV/sagetv-plugin-repo/master/SageTVPluginsV9.xml
I've testing this locally on my development machine, and, it downloaded the V9 repo file, and loaded the plugins from there (which is only 1, right now, which is my pushbullet plugin) and I was able to install it.

I did some testing to update the md5 url, and sagetv appears to noticed that it changed, and updated the V9 plugins.

The code changes are pretty minimal, because as I said, I just refactored Jeff's code to accept 3 parameters, and then I just call it for each repo configuration.

One last note, the repo order is.. v7, v9, additional repos, then the local SageTVPluginsDev.xml
Reply With Quote
  #7  
Old 12-31-2015, 06:06 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
FYI... I created a pull request, so we'll see where this goes.

I've also creates a v9 plugin repository with instructions on how to submit new or updated plugins.

https://github.com/OpenSageTV/sagetv-plugin-repo
Reply With Quote
  #8  
Old 01-01-2016, 01:10 AM
troycheek's Avatar
troycheek troycheek is offline
Sage Advanced User
 
Join Date: Feb 2008
Posts: 148
I'm not a plugin developer, but as a plugin user I vote for separate... something. I don't even know what to call it as I don't understand most of what's going on in this thread. I tend to think that software developers should be like doctors. First do no harm. I look forward to whatever wonderful things you can do with plugins for v9, but please don't take away a single bit of functionality of v7 in the process.
Reply With Quote
  #9  
Old 01-01-2016, 02:23 AM
tvmaster2's Avatar
tvmaster2 tvmaster2 is offline
SageTVaholic
 
Join Date: Jun 2005
Location: tarana
Posts: 3,363
Quote:
Originally Posted by troycheek View Post
I'm not a plugin developer, but as a plugin user I vote for separate... something. I don't even know what to call it as I don't understand most of what's going on in this thread. I tend to think that software developers should be like doctors. First do no harm. I look forward to whatever wonderful things you can do with plugins for v9, but please don't take away a single bit of functionality of v7 in the process.
+1, at least until we, the coding-handicapped, can make sense of things
__________________
Sage 7 server = Gigabyte AMD quad-core - 2 gigs - integrated ATI HD4200 chipset - Seagate/Hitachi Deskstar - HD-PVR - Colossus - Win7 32 bit. HD200 networked. "If you've given up on Weird Al, you've given up on life" - Homer Simpson
Reply With Quote
  #10  
Old 01-01-2016, 02:29 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by stuckless View Post
Yeah that's good for a local file, but we to implement a hosted version, like the SageTVPlugins.xml where it checks the md5 to determine if we need to update etc.

I'll spend some time and make the changes, and see if Jeff agrees.
Yeah, my little commit, as mentioned in it's comment, was just about the reading of the file, didn't deal with actually fetching a new version, because I wasn't really sure which way we want to go for that. If it's something to be generated with nightly builds (which aren't happening yet either) from the it, or what.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #11  
Old 01-01-2016, 02:44 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Just read through your implementation, seems great. I really like the ability for each dev to simply maintain their own .XML and just have to 'register' a url to the repo. Hopefully Jeff will pull it in, so that 'hopefully' it will be live and well before someone (jusjoken) gets an installer working.. :-)
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #12  
Old 01-01-2016, 03:24 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
One thing. What sort of validation is going on before items are added to the repository? I worry about a typo in someone's individual manifest resulting in malformed XML that hoses up the whole repo. On my first, rather uneducated, glance, it looks like you composite all the various manifests into a single temporary repository, verify it with xmlint, and if that passes it's tests, replace the main one. So, what would happen here, is that one bad manifest would stop the whole repository from updating. Would it be possible to use xmlint on each manifest instead, before concatenating it into the whole? Would save one mistake from holding up all other plugin updates until it's found.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room

Last edited by Fuzzy; 01-01-2016 at 03:26 AM.
Reply With Quote
  #13  
Old 01-01-2016, 07:17 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
Quote:
Originally Posted by Fuzzy View Post
One thing. What sort of validation is going on before items are added to the repository? I worry about a typo in someone's individual manifest resulting in malformed XML that hoses up the whole repo. On my first, rather uneducated, glance, it looks like you composite all the various manifests into a single temporary repository, verify it with xmlint, and if that passes it's tests, replace the main one. So, what would happen here, is that one bad manifest would stop the whole repository from updating. Would it be possible to use xmlint on each manifest instead, before concatenating it into the whole? Would save one mistake from holding up all other plugin updates until it's found.
I'll add the xmllint check to each manifest, since that part is easy.

I think that in addition to just xml validation, I know jeff actually validates each package to make sure it matches the md5, etc. I might do that eventually, but for now, I'm OK with just verifying the integrity of the xml file.

This script took about 30 minutes to create... it's amazing what you can do with simple linux commands . Eventually we'll need something more robust, either written in java or maybe python, that does better validation, etc.
Reply With Quote
  #14  
Old 01-01-2016, 01:38 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
The only other thing that might be nice, and possible depending on how you intend on running the script, would be for it to write the script's console output to logfile to the git as well, so it can easily be viewed to see that everything is working without depending on you having to intervene.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #15  
Old 01-01-2016, 02:09 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
Quote:
Originally Posted by Fuzzy View Post
The only other thing that might be nice, and possible depending on how you intend on running the script, would be for it to write the script's console output to logfile to the git as well, so it can easily be viewed to see that everything is working without depending on you having to intervene.
I agree... not sure how this is going work at the moment. Using something like TravisCI I can kick off a build everytime the git repo changes, but, for remote url references, I'm not going to know if the remote url is updated. (ie someone updates their plugin manifest in their git repo, then how do we tell this repo to rebuild the plugins repo xml file).

So, I think we are going to have a few kinks to work out, but definately, I agree, I should not be the bottleneck here. We might have to have several custodians that can in charge to kicking off a new build of the repo xml file, until we can fully automate it.
Reply With Quote
  #16  
Old 01-02-2016, 08:39 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by stuckless View Post
I agree... not sure how this is going work at the moment. Using something like TravisCI I can kick off a build everytime the git repo changes, but, for remote url references, I'm not going to know if the remote url is updated. (ie someone updates their plugin manifest in their git repo, then how do we tell this repo to rebuild the plugins repo xml file).

So, I think we are going to have a few kinks to work out, but definately, I agree, I should not be the bottleneck here. We might have to have several custodians that can in charge to kicking off a new build of the repo xml file, until we can fully automate it.
I have some ideas on that, but know too little about linux scripting to visualize what exactly needs to be done. My thought are we could actually run the CI script relatively often, but we have to make sure that the actual file and MD5 are only updated when something changes. To do this, we'd have to - after the temp repository file is made - compare it to the current file. Since it is built with the date in the first tag, however, we'd have to ignore that tag. I'm not sure if grep is able to do this (can grep pass through lines that DON'T match?). If it can, though, we could compare the two files, grep'ed to remove the "<PluginRepository" line, and if they do NOT match, then we make the MD5 and replace the .XML file.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room

Last edited by Fuzzy; 01-02-2016 at 08:53 AM.
Reply With Quote
  #17  
Old 01-02-2016, 09:05 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
That didn't turn out to be that hard to find the answers to. Yes, grep does allow reversing the match, and yes i can pipe the output of two greps into a diff. this command should do what is needed:

Code:
diff <(grep -v "<PluginRepository" $PLUGINFILE) <(grep -v "<PluginRepository" $TMPFILE)
The -v on the grep inverts the match, so all lines that do NOT contain <PluginRepository are passed into the diff. Diff will then compare them. The $? will be 0 if the files match, and 1 if they are different. I tested it in a temp environment. Changing the date in the <PluginRepository> tag still results in a match, changing anything down in the 'meat' of the repository does not.

EDIT: Should probably also pass diff's output to nul, so it doesn't end up in clogging up any logfile that ends up being created.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #18  
Old 01-02-2016, 10:09 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
Quote:
Originally Posted by Fuzzy View Post
That didn't turn out to be that hard to find the answers to. Yes, grep does allow reversing the match, and yes i can pipe the output of two greps into a diff. this command should do what is needed:

Code:
diff <(grep -v "<PluginRepository" $PLUGINFILE) <(grep -v "<PluginRepository" $TMPFILE)
The -v on the grep inverts the match, so all lines that do NOT contain <PluginRepository are passed into the diff. Diff will then compare them. The $? will be 0 if the files match, and 1 if they are different. I tested it in a temp environment. Changing the date in the <PluginRepository> tag still results in a match, changing anything down in the 'meat' of the repository does not.

EDIT: Should probably also pass diff's output to nul, so it doesn't end up in clogging up any logfile that ends up being created.
I added your logic to the existing script
https://github.com/OpenSageTV/sagetv...ginsxml.sh#L58

It will now abort early if there are no changes.

I still need to add logic to "commit" the new SageTVPluginsV9.xml/md5 files. The process is simple enough, just a little trickier when using CI, since, I need to
1. git clone the repo
2. git copy the modifed files into the repo
3. git commit the changes

This is easy enough, but, I need to do this as a user that has access to the git repo, and I'm sure that CI does not have write access to re-commit the files.

I'll have to play with it and see.
Reply With Quote
  #19  
Old 01-02-2016, 11:08 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by stuckless View Post
I added your logic to the existing script
https://github.com/OpenSageTV/sagetv...ginsxml.sh#L58

It will now abort early if there are no changes.

I still need to add logic to "commit" the new SageTVPluginsV9.xml/md5 files. The process is simple enough, just a little trickier when using CI, since, I need to
1. git clone the repo
2. git copy the modifed files into the repo
3. git commit the changes

This is easy enough, but, I need to do this as a user that has access to the git repo, and I'm sure that CI does not have write access to re-commit the files.

I'll have to play with it and see.
Looks good. I also like the flagging at the end of any omitted plugins. (Not that I envision a lot of problems with this, but it would certainly be at more risk of happening than with the current repository).
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #20  
Old 01-02-2016, 02:06 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,540
So, I added a .travis.yml file so that whenever something is pushed to the repo, it will rebuild and re-publish the xml and md5 files (whithout causing an infinite loop )

It works. (added a new "test" plugin and within a few seconds I can see the repo is updated with the new SageTVPluginsV9.xml)
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
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

Similar Threads
Thread Thread Starter Forum Replies Last Post
So when's the new release coming? teq Sage My Movies 7 10-07-2010 04:57 PM
How do plugins get into the list of plugins? michaeldjcox SageTV v7 Customizations 4 06-12-2010 03:05 AM
Ion coming soon... Polypro General Discussion 5 04-09-2009 01:30 PM
Coming from BTV SageGk SageTV Software 2 03-30-2008 01:05 PM


All times are GMT -6. The time now is 10:42 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.