Archive: changing output structure at runtime


changing output structure at runtime
Hi there,
I am in need of maybe an uncommon feature: I want to skip some files from unpacking that are alredy packed (in installer file), and, if possible, even change their relative location.
I know, I can unpack them all and, after that, delete and copy them as much as I want, but why first unpack them if they are never needed?
What files are going to be unpacked is defined by the chosen language, so the component selection makes no sense here.

thanks in advance,
oli


Just jump over them if something is true, e.g.

StrCmp $LANGUAGE ${LANG_ENGLISH} 0 +3
File "/oname=$INSTDIR\Lang\English.lng" "Lang\English.lng"
Goto End

StrCmp $LANGUAGE ${LANG_FRENCH} 0 +3
File "/oname=$INSTDIR\Lang\French.lng" "Lang\French.lng"
Goto End
End:

Or you could use LogicLib.nsh to make it even cleaner with ${If} statements.

-Stu


yeah, all right, but how is that possible?

I mean, it looks like this:

# Installer sections
Section -Main SEC0000
SetOutPath $INSTDIR
SetOverwrite on
File /r "${AppPath}"
File /r "${LanguagePath}"
CreateShortCut bla.lnk
WriteRegStr HKLM "${REGKEY}\Components" Main 1
SectionEnd

and as far as I understand nsis the above section packs and unpacks AppPath and LangPath to $INSTDIR, right? and what I want is to gain access to components in $LangPath witch contains of the subdir \Fench and \English etc.
And in \French etc. there are a hole bunch of files, so somthing like \oname would be very unpracticle.


Well, I will try with a root for every single language, that should do the trick

thanks folks!