Jump to content
Ketarin forum

appyface

Members
  • Posts

    459
  • Joined

  • Last visited

Everything posted by appyface

  1. When I look at the exported XML with a hex editor, I see CRLF (0D0A) following each command line. So it's an import issue...
  2. It happens with any of the command input areas for me, whether global or per-app. I just tried this test: 1. Created brand-new empty jobs.db with default settings 2. Created an app and put two commands into the post-download command input window for the app 3. Exported the app 4. Deleted and recreated the brand-new empty jobs.db with default settings 5. Imported the app Before I exported the app, my two command lines were on separate physical lines visually (CRLF delimiters) After importing the app to the new empty db, there is only one physical line visible in the post-download window that scrolls to the right a long ways -- the two comandlines are there, separated by a single linefeed character, and the last commandline is terminated by only a single linefeed character. I'd like to see them each terminated by CRLF after import instead of a single linefeed character, then they are very readable. Here's my exported test XML, looks normal enough(?): <?xml version='1.0' encoding='utf-8'?> <Jobs> <ApplicationJob xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Guid="07fe349d-bc8a-40f1-afe4-d1cc8eda7a8b"> <WebsiteUrl /> <UserNotes /> <LastFileSize>0</LastFileSize> <LastFileDate xsi:nil="true" /> <IgnoreFileInformation>false</IgnoreFileInformation> <DownloadBeta>Default</DownloadBeta> <DownloadDate xsi:nil="true" /> <CheckForUpdatesOnly>false</CheckForUpdatesOnly> <VariableChangeIndicator /> <CanBeShared>true</CanBeShared> <ShareApplication>false</ShareApplication> <ExclusiveDownload>false</ExclusiveDownload> <HttpReferer /> <Variables /> <ExecuteCommand>C:\Batch_Scripts\ketarin\hardlink_ln.bat {file} {file:replace:filestore:home-eeepc} C:\Batch_Scripts\ketarin\hardlink_ln.bat {file} {file:replace:filestore:livadm-it001} </ExecuteCommand> <ExecutePreCommand /> <Category /> <SourceType>FixedUrl</SourceType> <PreviousLocation /> <DeletePreviousFile>false</DeletePreviousFile> <Enabled>true</Enabled> <FileHippoId /> <LastUpdated xsi:nil="true" /> <TargetPath>C:\</TargetPath> <FixedDownloadUrl>http://somefile.com</FixedDownloadUrl> <Name>Import Commandline Test</Name> </ApplicationJob> </Jobs> What do you see after import? NOTE: I'm using XP Pro SP3 32-bit with all post hotfixes from m$ update... in case that makes a difference...
  3. It's just a readability issue, Flo, everything works fine... Did you try it? When I input command lines into the command parameter window in Ketarin, I start each of them on a new physical line like this: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzz There is a CRLF pair at the end of each line because I hit <enter> following entry of each one. After export/import, however, I see this instead xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|_|yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy|_|zzzzzzzzzzzzzzzzzzzzzzzzz (where |_| is actually a little rectangle char showing where the linefeed is) The Ketarin command input window is not very wide, so only the first part of the one physical line can be seen. At first I thought the import had lost my 2nd-n command lines, because I only saw the start of the first command line. Eventually figured out to keep scrolling to the right and the other command lines are there, separated by linefeeds not CRLF pairs. Do you see the same thing when you try it? My actual is a linefeed delimiter after (re)import, my expectation is a CRLF pair delimiter after (re)import. *Nix likes linefeeds, but windows does better visually with CRLF....
  4. Minor bug... Import of settings XML and jobs XML. Multiple before/after commands are separated only by a linefeed, and the last one is terminated with only a linefeed. The commands work fine, but are difficult to edit and work with inside Ketarin GUI without the carriage return/linefeed delimiter. Please fix? Thanks as always, --appyface
  5. @Michse remove /notify and command window will close automatically. Is that what you wanted? --appyface
  6. So another cmd line switch, to output only errors to another file, would help those of us who still want to output a full detailed log too. My preference is to write a single line in the error file, it's a placeholder that represents ANY error Ketarin encountered while processing an app. The line would contain the date/time, app name, and app guid (in case of duplicate names). For me no other detail is necessary, as I'd be going to the Ketarin GUI to check it out anyway (or I'd look at my detailed log file). Sure, an error caused by a website temporarily down wouldn't require going to the Ketarin GUI if we knew that's what it was, but I'm hoping to make this idea very quick and easy for Flo to implement :-) and still make it worthwhile to us. Oh, and if there are no errors, I've no preference whether the error file is not created, or is created but empty. Anyone have a preference when there are no errors? Other thoughts and ideas about this one? If its simple enough maybe Flo could be persuaded to slip it in next time he has a break from his other work :-) --appyface
  7. For me if the CIV has not changed, but the previously downloaded file can't be located, I do want the file downloaded again. I agree with Josh, if possible please offer both options? --appyface
  8. Yes, into a file. I was originally thinking of a 'log level' parameter to the log switch -- one that restricts the output log to just the errors that would have been listed in the pop-up if running Ketarin interactively. But now I'm thinking a separate switch and file for this option, one could output the detailed log via the /log= switch, and another switch and file could catch the messages that would have been in the pop-up? Best of all worlds... specify one or the other or both switches?
  9. I found an app where I need to scrape the referer URL. Ketarin interpreted my variable, which I set into the 'referer' box in the app-setup, as a literal. Is it possible to add variable support to the referer box? Thanks in advance as always, --appyface
  10. appyface

    /silent mode

    Hi Flo, Would you please consider having Ketarin issue error message and terminate immediately, if /silent and /export are not permitted in same run? Then it would be obvious the combination is deliberately disallowed and it wouldn't look so much like a bug... TIA for your consideration of this idea. Regarding the /silent /notify issue reported here, I made some test runs too: 1. I have command scripts specified in the before and after update areas, in global settings and also in per-app settings. (I don't use an 'after all updates are completed' script in global settings, but I added one for this testing too.) 2. I tried these combinations of command line parameters: a) /silent /notify /silent /notify /log=<logfilename> c) /silent /notify /database=<dbname> d) /silent /notify /database=<dbname> /log=<logfilename> (in the case of defaulting to jobs.db for database, it's in the same directory with Ketarin) In all the above tests, all before and after scripts were executed from both the global and the per-app command areas. What I didn't get, is an output log? I tried specifying an absolute path/filename and just filename. I'm running Ketarin version 3.0.9.309, and my OS is XP Pro SP3 32-bit (plus all post hotfixes from m$). What OS and patch levels and what version of Ketarin is everyone using, that are not seeing the command scripts being executed? --appyface
  11. Yeah it's the best method I've come up with so far. If you use something like the free tool TextCrawler (httx://www.digitalvolcano.co.uk/content/textcrawler/tcdownload) you can even run against an entire directory of log files and display just the error messages or other parts you'd like to see out of each of them. It supports regex but it's rudimentary, and there's probably a superior tool out there, but I've used TC for so long and for all sorts of tasks, that I just haven't bothered looking for anything else. Perhaps Flo could be persuaded to add another command line switch, that would just output the error lines which appear in the Ketarin pop-up window... Thanks for mentioning the HiddenStart shortcut function. Yes I do know about that one. When I wrote that I like to see the taskbar button, I should have also mentioned it's because I can see at a glance if Ketarin is running at that moment without disrupting my work. I don't usually care to know if Ketarin is running or not, except when I'd like to do some maintenance. IIRC Flo stated it's not a problem to have two Ketarin instances open against the same database, but I'd just as soon let an update run finish before I start changing the database. Kind regards, --appyface
  12. P.S. I didn't necessarily know ALL of my constraints at the start. Think of as many as you can. Some I discovered as I did my research and homework on "how" I might string this together. I might like how so-and-so implemented something, but then I realized the downside is I don't get or I lose xxxxx. So I added a "must make sure I have xxxxx" to my list of constraints right then and there, so I wouldn't lose track of my constraints as I started to formulate my ultimate "how".
  13. Not at all :-) Now it's my turn to ask you, after you read the below. :-) First off, I'm really sorry, I'm so swamped right now and don't have time to dive into this in any real depth, but I'll give you as much as I can. Yes I do believe the approach you outlined may be more complex than is required to achieve your objectives. But first I'd ask you to strip away "how" you've decided on (using shortcuts, organizing in folders, etc. those are all "implementation" and not desired objectives necessarily) and ask yourself just what it is you'd like to achieve with "some kind of as yet unknown how". Because I'm thinking your real objective is not yet stated. This is only my supposition but it appears to me you may be trying to build a repository of current installers/portable apps etc., you want to be sure you don't lose any prior files just in case you need them, and you'd like to automate or semi-automate running the installation of the current version downloaded to your machine, and/or to multiple machines and not just the one with the downloaded app files? As that's probably the objective of 80% of the people using Ketarin, I'm hoping that supposition is close! :-) Given my supposition, I'll leave you now with some ideas and things to ponder: :-) 1. Most people scrape version from the webpage where the app is 2. Have a look at the Ketarin documentation (link at top of forum). Even if you've looked at it before, go through it again. Forget the implementation ("how") and think about what really really want to achieve and what are your constraints. Yes you'll naturally be thinking "how do I use this" when you look at what's available with Ketarin, as in "if I do this I could use that to..." just stay open minded and away from forming an implementation design just yet. Constraints are hard or physical world limitations the ultimate "how" must take into account. Example from your task, You do not want to lose, or lose track of, prior version files. That's a constraint on how you implement your objective -- one implementation method might sacrifice this and so is not a good design choice for you. Think along those lines first. 3. Search these forums, many people have posted their "hows" to for all or part of these things, many different implementations, with differing constraints. Again evaluate these other ideas for what they achieve, what constraints they obey, and whether they sacrifice any of your constraints. Just absorb ideas as 'building blocks' to the ultimate design. I'll leave you with a brief sketch of my own setup from objectives point of view and my constraints... OBJECTIVE: -------------- I want to keep all the machines in my local network, installed with the current versions of the applications they use. CONSTRAINTS: ------------------ 1. I want a local ("offline") repository that is available to me all the time. I do not want to be dependent on an internet connection or multiple places where these files might reside, I want them all together and local for my convenience. 2. Not all apps get installed on all machines, I want an automated or semi-automated way of installing only the ones I want to each machine. 3. Ketarin does not maintain all apps in the repository. Other methods will be employed to achieve the objectives, so the design I settle on must be compatible with other sources of getting current version files downloaded. 4. I do not want to lose my prior installation file copies, or their identity (name, version, dates, etc.) just in case I should want them again. 5. I do not want any method that is high maintenance or frequently fallable. If it requires either of those, manual updating is more efficient for me, however nice automation may be :-) 6. I don't want automatic installation of newest version when it arrives. In my experience it's been too much trouble to "automatically" push updates as soon as they arrive. I want to examine them first, and install to one machine at a time of my choosing and make sure it looks OK. THEN I'll update the other machines that use the app(s). WHAT I DON'T CARE ABOUT: ------------------------------------ 1. I don't need an ongoing automated method or semi-automated method for REPEAT re-install of same version. In other words, when the new version installer becomes available, if THAT is automated or semi-automated to install/update the appropriate machines that is good enough. If I should need to re-install anything that's probably a "one-off" situation for me and I'll do that manually, as I believe from experience it will be very high maintenance and problematic to attempt to automate the complete reinstallion of the same versions to their machines... so I don't need that complexity in my solution. 2. While it wouldn't be desirable for efficiency reasons, it doesn't matter to me if the implementation I settle on, collects a small number of duplicate installers. (I already have a separate automated process that runs and deletes exact duplicates from disk regardless of name.) So a little inefficiency in this manner, if it keeps my chosen implementation much simpler or less problematic, is OK with me. I have additional portions to my objective, and additional more detailed constraints to my actual setup, but I hope the above is detailed enough to give you an idea how to first define what you're wanting to acheive before you settle on "how" you're going to achieve it. Now a word about my own implementation, which uses a different approach from yours: 1. In the case of the apps Ketarin maintains for me, I use pre and post command scripts to MOVE the prior file to a separate repository. I keep two repositories -- all the prior versions are in one, and the current version Ketarin downloads is in another. (Other sources that keep up some of the apps the repository for me obey this same implementation design) 2. Ketarin's scripts build for me, executable batch files containing the name of the file just downloaded, so I don't care what it is called, Ketarin knew the name at the time of download and inserts it into a .bat file. My other sources do the same. 3. The .bat files are customized to one per machine. There won't be a .bat file for a particular machine if it doesn't need any of the versions just downloaded to the current version repository. Other than Ketarin itself, this is the only real ongoing maintenance task I have with my chosen implementation, to manually maintain the list of which apps go to which machines. The .bat files date/timestamped as I may collect several of them before I'm ready to install, I like this rather than appending to the same one all the time. Just a personal preference with how I like to work. 4. All the downloaded files are named including version, date/time, or other unique identifier for that version (not all authors build this right into their filenames, so I make sure I do when I download it). Therefore I don't need subdirectories for individual files and versions. What I have instead, are subdirectories for groups of similar applications (a subdirectory that holds all text editors, another that holds all MP3 players, etc.) Both my local and prior-version repository have the same structure, usually just one layer deep. ALL files with similar purpose live in the subdirectory. So, when I am ready to install, I run the batch file(s). That's it. The above is not actually my full objective and list of constraints and "don't care's". But I hope what I've written is complex enough to give you food for thought. Kick what you really want to accomplish without thinking "how", and really think about your constraints to that achievement. Then glean ideas from the documentation and this forum and I think your approach will turn into something a lot simpler :-) I will check back on you later on when I can. But in the meantime make sure that no matter what you do, you have a lot of fun doing it!!!! Best regards, --appyface
  14. Hi Jim, If I understand your question correctly, you are asking for more information on best practices when writing certain kinds of design logic in Windows scripts, such as in the scripts you can launch from within Ketarin? If that's the case, IMO there's not a single best approach to any particular design, such as your example of passing a string value down through the script or even into another script. An environment variable might be a viable method, it depends on whether the variable needs to be static or temporary, how long the string is, can you make your environment space large enough to hold what you need, etc. Other options could be to use .vbs scripts within or instead of .bat or .cmd files, they have more processing options but may be a security risk depending on your installation. Or perhaps installing 3rd party command line tools such as Cygwin for Windows gives you the options you need. I hope I underrstood your question correctly and gave you some ideas to look into? But if I'm still being daft :-) and missing your question, please let me know. --appyface
  15. Yep I'll add my vote again to this one. It would be nice to make some notations right with the app. I keep a text file in the Ketarin directory of my to-do's and notes for the time being, but this would be soooo convenient :-) --appyface
  16. appyface

    /silent mode

    Another bug with /silent: I specified /silent along with /export and the output file I got is definitely not an XML file :-) Thanks and regards, --appyface
  17. Not sure this will give you exactly what you're looking for, but here's what I do: 1. I created a batch file for Ketarin to run in silent mode (without /notify) and specify my database 2. I also specify the /log= command line option to put the output logfile where I save them (with date/time stamp on it via batch variables) 3. I then created a shortcut (*.lnk) to the batch file -- the shortcut can be configured to launch the batch file minimized. I like this because all I will get is a CMD window button on my taskbar that goes away on its own, it doesn't pop up over other windows while I'm working and disrupt me. 4. I used to have my text editor open the saved logfile after Ketarin was done, I don't anymore as I just go look at it when ready. But that would give you a text listing of the Ketarin log file when Ketarin is finished. Hope this helps, perhaps you can revise it to get what you need... --appyface
  18. I'm not clear what you're asking about... Are you referring to a called script, such as what can be put in the 'command before' or 'command after' portions of the global or per-app setup? --appyface
  19. I use RegexBuddy, which has options to show and use the defaults of each 'flavor' of regex. After selecting a 'flavor' the options such as whether '.' matches newline, can be tweaked to your liking. This is not free but it is an excellent regex tool. --appyface
  20. It's a deal! Thanks Flo :-) --appyface
  21. Flo - Tried just now to access Ketarin documentation (from Documentation link at top of this forum - http://cdburnerxp.se/help/kb/20), Page loaded looks a little odd and has this message at the top: Deprecated: Function split() is deprecated in /srv/www/vhosts/cdburnerxp.se/htdocs/help/inc/auth.php on line 154 Just FYI in case you weren't already aware... --appyface
  22. So this would be {file:basefile}? And {file:ext}? (sorry, I don't recall if that last one is already possible) TIA if so :-) --appyface
  23. Thanks Flo! Ah yes I should have seen my : characters would need extra treatment since they are delimiters. Why do I need to escape the \ character also? This is not a regexreplace, just plain ol' replace, yes? TIA, --appyface
  24. The Ketarin doc states that {file} may only be used in commands, and that seems to be true. But it also appears that functions cannot be used in commands? Hmmm.... I have a command script to be executed after every file downloaded to disk. I need to pass two parameters to it: The full path/filename of the downloaded file, and a slightly modified string created from that same path/filename. This is the command line I want to use: script.bat {file} d:\newdir1\newdir2{file:replace:d:\oldpathdir\:\} assuming {file} = d:\oldpathdir\node2\node3\somefilename.ext the above command line would pass the two parameters exactly as I want: Parameter1: d:\oldpathdir\node2\node3\somefilename.ext Parameter2: d:\newdir1\newdir2\node2\node3\somefilename.ext Unfortunately, this commandline is submitted by Ketarin as this: script.bat d:\oldpathdir\node2\node3\somefilename.ext d:\newdir1\newdir2{file:replace:d:\oldpathdir\:\} As mentioned above, I can't use {file} in Ketarin variables. I tried! (And I wish I could, I have MANY uses for it). So what I want to do doesn't seem possible at the moment? Or is it, and I'm just not seeing it...? Thanks in advance for any help. Regards, --appyface
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.