@@ -40,6 +40,7 @@ type PackageManager struct {
4040 InstallSaveThreshold int
4141 InstallACHandling string
4242 InstallDependencyHandling string
43+ InstallExtractOnly string
4344 InstallHTMLEnabled bool
4445 InstallHTMLConsole bool
4546 InstallHTMLStrict bool
@@ -60,6 +61,7 @@ func NewPackageManager(res *Instance) *PackageManager {
6061 InstallSaveThreshold : cv .GetInt ("instance.package.install_save_threshold" ),
6162 InstallACHandling : cv .GetString ("instance.package.install_ac_handling" ),
6263 InstallDependencyHandling : cv .GetString ("instance.package.install_dependency_handling" ),
64+ InstallExtractOnly : cv .GetString ("instance.package.install_extract_only" ),
6365 InstallHTMLEnabled : cv .GetBool ("instance.package.install_html.enabled" ),
6466 InstallHTMLConsole : cv .GetBool ("instance.package.install_html.console" ),
6567 InstallHTMLStrict : cv .GetBool ("instance.package.install_html.strict" ),
@@ -503,7 +505,7 @@ func (pm *PackageManager) Install(remotePath string) error {
503505
504506func (pm * PackageManager ) installJSON (remotePath string ) error {
505507 log .Infof ("%s > installing package '%s'" , pm .instance .IDColor (), remotePath )
506- response , err := pm .instance .http .Request ().SetFormData (pm .installParams ()).Post (ServiceJsonPath + remotePath )
508+ response , err := pm .instance .http .Request ().SetFormData (pm .installParams (remotePath )).Post (ServiceJsonPath + remotePath )
507509 if err != nil {
508510 return fmt .Errorf ("%s > cannot install package '%s': %w" , pm .instance .IDColor (), remotePath , err )
509511 } else if response .IsError () {
@@ -523,7 +525,7 @@ func (pm *PackageManager) installJSON(remotePath string) error {
523525func (pm * PackageManager ) installHTML (remotePath string ) error {
524526 log .Infof ("%s > installing package '%s'" , pm .instance .IDColor (), remotePath )
525527
526- response , err := pm .instance .http .Request ().SetFormData (pm .installParams ()).Post (ServiceHtmlPath + remotePath )
528+ response , err := pm .instance .http .Request ().SetFormData (pm .installParams (remotePath )).Post (ServiceHtmlPath + remotePath )
527529 if err != nil {
528530 return fmt .Errorf ("%s > cannot install package '%s': %w" , pm .instance .IDColor (), remotePath , err )
529531 } else if response .IsError () {
@@ -586,16 +588,27 @@ func (pm *PackageManager) installHTML(remotePath string) error {
586588 return nil
587589}
588590
589- func (pm * PackageManager ) installParams () map [string ]string {
591+ func (pm * PackageManager ) installParams (remotePath string ) map [string ]string {
590592 return map [string ]string {
591593 "cmd" : "install" ,
592594 "recursive" : fmt .Sprintf ("%v" , pm .InstallRecursive ),
593595 "autosave" : fmt .Sprintf ("%d" , pm .InstallSaveThreshold ),
594596 "acHandling" : pm .InstallACHandling ,
595597 "dependencyHandling" : pm .InstallDependencyHandling ,
598+ "extractOnly" : pm .determineInstallExtractOnly (remotePath ),
596599 }
597600}
598601
602+ func (pm * PackageManager ) determineInstallExtractOnly (remotePath string ) string {
603+ var extractOnly string
604+ if pm .InstallExtractOnly == pkg .InstallExtractOnlySnapshot {
605+ extractOnly = fmt .Sprintf ("%v" , pm .IsSnapshot (remotePath ))
606+ } else {
607+ extractOnly = pm .InstallExtractOnly
608+ }
609+ return extractOnly
610+ }
611+
599612func (pm * PackageManager ) DeployWithChanged (localPath string ) (bool , error ) {
600613 if pm .IsSnapshot (localPath ) {
601614 return pm .deploySnapshot (localPath )
0 commit comments