My experience is that early upgrades are very unstable and they take an eternity to fix bugs, I need to find a way to push myself from the early stage to the late stage.
[WayBack] Adding staged updates to SourceTree | SourceTree Blog
–jeroen
Posted by jpluimers on 2016/12/01
My experience is that early upgrades are very unstable and they take an eternity to fix bugs, I need to find a way to push myself from the early stage to the late stage.
[WayBack] Adding staged updates to SourceTree | SourceTree Blog
–jeroen
Posted in Development, DVCS - Distributed Version Control, git, Mercurial/Hg, Source Code Management, SourceTree | Leave a Comment »
Posted by jpluimers on 2016/12/01
In a quest to perform SFTP in Delphi next to FTP, I first researched what I was up against. A tiny voice in the back of my head said “SFTP is totally unlike FTP” and it was right: SFTP means SSH File Transfer Protocol, not Simple File Transfer Protocol nor FTP over SSH nor FTP over SSL aka FTPS – the latter is supported by Indy but the former isn’t.
I decided against SecureBlackBox (providing SFTPBlackbox) and IPWorks (SSH) as I tried both a while ago for S/MIME support and was disappointed about both the lack of features and documentation; in the end I went for wrapping OpenSSL for the “encrypt-then-sign” process and Indy for the SSMTP part. The merger of the SecureBlackBox and IPWorks made me even less happy.
The Chilkat alternative for SFTP isn’t too compelling either: ActiveX or DLL black-box without a lot of insight on how many people do use it.
So when I had to do SFTP and knew there are no free or open source SFTP components for Delphi available I opted for thinking outside the Delphi realm.
My basic idea was to embed either of these:
FileZilla internally uses FzSFtp.exe which is based on PSFTP code (but with some buffers making it faster than PSFTP or WinSCP).
According to the author, neither FzSFtp.exe nor FileZilla can be automated:
FileZilla cannot make any automated transfers at all. Neither FileZilla.exe nor fzsftp.exe (is for SFTP) can be used for any batch processing.
Source: run filezilla tzsftp from batch command line – FileZilla Forums
The WinSCP author commented in a similar fashion:
FileZilla does not have any command line arguments (nor any other way) that allow automatic transfer.
Source: windows – Command line option to download file in FileZilla – Stack Overflow
In addition, FileZilla is always a GUI program, so running it as a console app (which I’d prefer) would be impossible.
WinSCP can be automated in two ways:
/console
and /script
switch enabling scripting mode that you can use for Scripting and Task Automation :: WinSCP
/console
switch is implicit)Since I already had good Delphi wrapping code round starting/waiting-for running processes, I’d opt for using WinSCP.com scripting.
There used to be wrapping code around: Use with Delphi :: Support Forum :: WinSCP
These Using PSFTP to transfer files securely links should get me going:
- 6.2.1 General quoting rules for PSFTP commands
- 6.2.2 Wildcards in PSFTP
- 6.2.3 The
open
command: start a session- 6.2.4 The
quit
command: end your session- 6.2.5 The
close
command: close your connection- 6.2.6 The
help
command: get quick online help- 6.2.7 The
cd
andpwd
commands: changing the remote working directory- 6.2.8 The
lcd
andlpwd
commands: changing the local working directory- 6.2.9 The
get
command: fetch a file from the server- 6.2.10 The
put
command: send a file to the server- 6.2.11 The
mget
andmput
commands: fetch or send multiple files- 6.2.12 The
reget
andreput
commands: resuming file transfers- 6.2.13 The
dir
command: list remote files- 6.2.14 The
chmod
command: change permissions on remote files- 6.2.15 The
del
command: delete remote files- 6.2.16 The
mkdir
command: create remote directories- 6.2.17 The
rmdir
command: remove remote directories- 6.2.18 The
mv
command: move and rename remote files- 6.2.19 The
!
command: run a local Windows command
Practical examples:
For my own reference, the open source locations:
During the search above I found the below links that will be useful to me one day:
–jeroen
Posted in .NET, Delphi, Development, Software Development, SSH, TCP | 5 Comments »
Posted by jpluimers on 2016/12/01
Thanks Alexey for answering and Horácio for asking:
Use type-cast PResStringRec(@SArgumentNil_NilValue_Collection)
–jeroen
via: Hey guys, When I switch on $TypedAddress Compiler Directive, it is no longer…
Posted in Delphi, Delphi 10 Seattle, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development, Uncategorized | Leave a Comment »