• Announcements

Omniferum

Members
  • Content count

    304
  • Joined

  • Last visited

About Omniferum

  1. Dear floele, Please excuse our english if it becomes too confusing for you. We believe you are German, but have posted in English. I represent a collective of wealthy benefactors who have a team of experts that have identified you as someone who is an unrecognized genius coder. If you would like this talent nurtured further and desire either mentoring OR money from YOSH, we would welcome you to get into contact with us. It was one of our own members who noticed you (omniferum). Our collective found him, and he led us to you. We offer you the same opportunity that he has taken, without the desire to make you feel guilty/responsible regardless of your choice. Any contract you sign will only be ones that guarantee we make no profit from you, and that we will own NO Intellectual Property. It will either be distributed amongst those who choose to draw their money from the YOSH pool of funds, or directly to you. Either way, we offer you freedom to become who we see in you. Our e-mail: yosh@tuta.io [mangled now in case you have email filters on your forum system] -> YOSH data 2 ta dhot io Sincerely, Y.O.S.H. (YourOpenSourceHumanity) p.s. We are using every pathway we can find to contact Mr. Floele directly. Any assistance (if this message is having trouble finding him) would be welcome.
  2. CONCERN Every few months I find an app that hasn't been updating at all because {preupdate-url} is not resolving to anything (I use a {download} variable in that field) and I have to perform some manual investigation. I'm sure most people use their own variable to populate the Download Source URL. Currently Ketarin will only run 'before updating an application/before downloading' commands if Ketarin detects that there is something to download. If it doesn't find anything, or fails to determine the file to download as downloadable, then it just fails and no commands are run. I'm aware Ketarin needs to determine variables and if there is anything it can do, but it 'fails' and exits the job without bothering to check pre-update commands. Scenario is basically this. if " {preupdate-url}" EQU "" START CMD /C "ECHO {appname}: Unable to resolve download URL, investigate & PAUSE All variables are populated, but nothing is done with them because of it. SUGGESTION Is it possible to put the execution order of Ketarin 'fail' as after the pre-update commands, or some sort of allowance/option in the main menu or per-app that can inform someone that the {preupdate-url} variable is empty? This falls mostly under a maintenance feature so offering full-blown scripting for pre-fail commands might not make sense and a simple "does {preupdate-url} contain a slash, a dot, and at least a letter or number?" check.
  3. RD [/s] [/Q] [drive:]path In all the examples you provide, you've put the /S /Q flags 'after' the path which can be just a bit confusing depending on situation. Primarily though, START "" /WAIT can conflict with the /B flag - basically the /WAIT does not fire and so all those commands are being executed without actually waiting for the 7z "C:\Users\User\Desktop\Utility icons\Ketarin-1.7.0\Apps\Art\7z.exe" x "{file}" -o"C:\Users\User\Desktop\Utility icons\Ketarin-1.7.0\Apps\Art\aaa\" -y CD "C:\Users\User\Desktop\Utility icons\Ketarin-1.7.0\Apps\Art\aaa\blender-*-win64" RD "C:\Users\User\Desktop\My stuff\Art Tutorials\Art\Blender Dev" XCOPY /Y /S /Q *.* "C:\Users\User\Desktop\My stuff\Art Tutorials\Art\Blender Dev\" RD /S /Q "C:\Users\User\Desktop\Utility icons\Ketarin-1.7.0\Apps\Art\aaa" The above should work fine. Keep in mind that Ketarin doesn't actually fire off a 'batch file', it just sends the command as if you were typing them into the cmd.exe window yourself and pressing enter as necessary.
  4. I should perhaps have pointed out my issue is that my approach only works if you have a variable as the URL, forcing Ketarin to resolve it so you can perform a check against it. I was asking more for Ketarin to have a built-in variable that it will attempt to resolve which you can check against.
  5. Oh, could we have an extra application option called "if download variable is empty/doesn't resolve then consider it an error"? Currently I just have a batch script that basically says: IF "{downloadurl}" EQU "" cmd /c echo error
  6. Command line
  7. This is actually an old thing I believe, but would it be possible to implement a form of silent/unattended that will exit if it encounters no errors upon updating, but if there is an error Ketarin can prompt 'would you like me to skip and keep going or would you like to investigate?' Or have a prompt at the end that says 'These applications encountered an error, investigate.' but if there are no errors then it just exits smoothly.
  8. {download} is not a built-in variable. Most people just name their custom variable {download} because it is the simplest. If you go to the variables window of any application profile in Ketarin the variables list on the left is the name, and on the right is 'where' the information will come from, and also 'what' information will be processed. Most people click on the circle "Content from URL (Regular Expression)" because we are used to using regex to get the link, but you can use the 'start/end' one if regex is not your thing. The first bar underneath that is: Contents from URL (The website address that has the download links you want) Search within contents: This is just a quick 'search' function that helps you find the part on the page that would have the link so you can construct your regex properly Use regular expression: The regex <- the result from this regex is what the highlighted variable on the left will be populated with. Example Regex: [^ "'<>\*]+\.exe Variable name on the left: download This is my default regex and it will find 90% of the first exe link on the page. It would return a link like this: http://www.fosshub.com:8080/download/mp3DC220.exe So now {download} will expand to: http://www.fosshub.com:8080/download/mp3DC220.exe Hope that helps.
  9. If you are using the built-in variables {root} it will output like this: (letter of the drive that ketarin is being run from) + :\ -> e.g. if it is on your C drive you will get: C:\ So you would need to: {root}System\{category}\{appname} [{version}].{url:ext} I should also point out that I have used nothing BUT add instruction -> Custom command and input everything as batch commands. No problems to date. If you would like a universal command to silently install all .msi packages that support command line silent installation (tons of 'em do) you can use my logic below (I've been using Ketarin for years, the command has never failed.) To use the below thing you need to create two global variables called temppath and installpath, you can do this by: Main Ketarin window -> Click on file in top left -> Click on settings -> Click on the global variables tab) for reference these are how I define them in my Ketarin {temppath} = {root}Ketatemp\ {installpath} = {root}Programs\ start "" /wait msiexec /a "{file}" /qb! TARGETDIR="{temppath}{appname:regexreplace: \(.*\):}" for /f "tokens=2 delims=[]" %a in ('dir /b /s "{temppath}{appname:regexreplace: \(.*\):}\*.exe" ^| find /v /n "" ^| findstr /c:[1]') do set dir=%~dpa* {copyfolder} "%dir%" "{installpath}{category}\{appname:regexreplace: \(.*\):}\" rd /s /q "{temppath}{appname:regexreplace: \(.*\):}" To explain it a little basically it goes: Extract files to a temp directory Find the first .exe file in the folder the .msi was extracted to and set it as the 'base' folder. (EXPLANATION: The reason for this is some MSI's do NOT unpack to normal paths that you can just copy/paste/run) Copy all the files to their final destination Cleanup the temp folder
  10. I've developed a fair few templates with some basic batch points to automate installation from archives, binaries that can be uniextracted, standalone exe's, MSI admin stuff. Basically tried to automate as much as possible. It is all logic that could easily be implemented into Ketarin's base.
  11. I've always gone Application name (architecture|other specific information like dependencies or things that aren't immediately obvious) e.x. -CCleaner - Standard -CCleaner (x64) - It is pointless to put in x32, because 90% of programs will probably be 32-bit only still. So cluttering up the DB with unimportant information seems a tad pointless and will just make WHAT we look for a bit more confusing. You could try to put in other columns as standard like Architecture|Dependencies|Install Method then we wouldn't need to clutter up the application name. -Sickbeard (TorrentFork|GithubSource|Python) - Sickbeard has both source and binary that can be run from windows But I only do that for installers that are have explicit requirements that would not be obvious just from the application name. I mean the base understanding is 'this is a file you download and install/unzip/uniextract to run' with no other real dependencies or anything else. Granted these are special cases, but the 'extra' naming conventions should only be to make things that would not be immediately obvious.
  12. Delete them all and start fresh. Trying to just prune the bad ones would take far more time and most likely plenty will slip under the radar and stifle adoption from new users if they find frustration at some apps not working. And besides those would contribute fresh/new would have most likely tweaked whatever they submit to be very clean running. Happy to see development is ongoing.
  13. Agreed for all above. Even if it turns into some sort of moderator thing i'd be happy to pitch in.
  14. I actually made this already. If you want a rundown what it does is check the executable timestamp along with a custom file timestamp that is created whenever the install instructions are run. If there is a disparity then it runs the install instructions, woof. These are all seperate 'custom commands' that you add in the 'setup' tab, they are always executed 'in order' so make sure they are organized. When you make custom commands there are little green arrows next to them so you can move them up/down the list. ::This first part of the script determines if an install is necessary MD "{temppath}{appname:regexreplace: \(.*\):}\" ::This part of the script determines if the file downloaded is 'newer' than the last time an install was performed REM The XCOPY /D tag compares "modified time stamps" IF EXIST "{root}Programs\{category}\{appname:regexreplace: \(.*\):}\{appname:regexreplace: \(.*\):}-LastInstall.txt" XCOPY /L /D /Y "{file}" "{root}Programs\{category}\{appname:regexreplace: \(.*\):}\{appname:regexreplace: \(.*\):}-LastInstall.txt" | FINDSTR 0 && ECHO NO>"{temppath}{appname:regexreplace: \(.*\):}\{appname:regexreplace: \(.*\):}-NotNew.txt" IF EXIST "{temppath}{appname:regexreplace: \(.*\):}\{appname:regexreplace: \(.*\):}-NotNew.txt" EXIT ::All your install commands should go here, the line directly below just checks to see if it should skip install instructions or not IF EXIST "{temppath}{appname:regexreplace: \(.*\):}\{appname:regexreplace: \(.*\):}-NotNew.txt" EXIT ::Cleanup and update last install time command, this should be the last command run IF EXIST "{root}Programs\{category}\{appname:regexreplace: \(.*\):}\{appname:regexreplace: \(.*\):}-NotNew.txt" DEL /F /Q "{root}Programs\{category}\{appname:regexreplace: \(.*\):}\{appname:regexreplace: \(.*\):}-NotNew.txt" & EXIT ECHO %DATE%>"{root}Programs\{category}\{appname:regexreplace: \(.*\):}\{appname:regexreplace: \(.*\):}-LastInstall.txt" RD /S /Q "{temppath}{appname:regexreplace: \(.*\):}\" &
  15. When you unzip Ketarin there is no Jobs.db file in the folder. If you don't explicitly create an empty file called Jobs.db in the same folder as it Ketarin creates one in the %appdata%\ketarin folder. If you move your Jobs.db from that folder to where your Ketarin folder is then Ketarin will always use the Jobs.db in the same folder as it, rendering it fully portable.