<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Stroom – import</title>
    <link>/tags/import/</link>
    <description>Recent content in import on Stroom</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Fri, 11 Jul 2025 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="/tags/import/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Content Import and Export</title>
      <link>/docs/user-guide/content/import-export/</link>
      <pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate>
      
      <guid>/docs/user-guide/content/import-export/</guid>
      <description>
        
        
        &lt;p&gt;All Stroom content can be exported to a file and conversely imported from a file.
Multiple entities can be exported in the same file.&lt;/p&gt;
&lt;p&gt;Stroom exports take the form of a zip file containing the exported form of each entity.
Each entity will have at least two files within the zip file.
These zip files are sometimes known as &lt;em&gt;Content Packs&lt;/em&gt; as they are essentially a pack of Stroom content.&lt;/p&gt;
&lt;p&gt;Stroom has a number of off-the-shelf content packs available for download and import.
There are packs for such things as XML schemas and standard pipelines/translations.
These can be found at &lt;span class=&#34;external-link&#34;&gt;
  &lt;a href=&#34;https://github.com/gchq/stroom-content&#34; target=&#34;_blank&#34; class=&#34;external-link&#34; title=&#34;github.com/gchq/stroom-content (external link to https://github.com/gchq/stroom-content)&#34;&gt;
    &lt;span&gt;github.com/gchq/stroom-content&lt;/span&gt;
    &lt;i class=&#34;external-link-icon fas fa-external-link-alt fa-sm text-secondary&#34;&gt;&lt;/i&gt;
  &lt;/a&gt;
&lt;/span&gt;
 and &lt;span class=&#34;external-link&#34;&gt;
  &lt;a href=&#34;https://github.com/gchq/stroom-visualisations-dev&#34; target=&#34;_blank&#34; class=&#34;external-link&#34; title=&#34;github.com/gchq/stroom-visualisations-dev (external link to https://github.com/gchq/stroom-visualisations-dev)&#34;&gt;
    &lt;span&gt;github.com/gchq/stroom-visualisations-dev&lt;/span&gt;
    &lt;i class=&#34;external-link-icon fas fa-external-link-alt fa-sm text-secondary&#34;&gt;&lt;/i&gt;
  &lt;/a&gt;
&lt;/span&gt;
.&lt;/p&gt;
&lt;h2 id=&#34;exporting-content&#34;&gt;Exporting Content&lt;/h2&gt;
&lt;p&gt;Content can be exported using two methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Via the main menu:





  &lt;div class=&#34;stroom-theme-dark stroom-menu&#34;&gt;
    
    

      

      
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 0px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item &#34; &gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Tools
      &lt;/div&gt;
        &lt;div class=&#34;stroom-menu-item-arrow&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Arrow right&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1427.7665&#34; height=&#34;1427.7665&#34; viewBox=&#34;0 0 1427.7665 1427.7665&#34;&gt;&lt;g style=&#34;stroke:currentColor;stroke-width:167.567&#34;&gt;&lt;path d=&#34;m 415.05387,83.70929 c -39.92654,0.4303 -75.41463,48.3887 -40.0468,81.9121 C 567.552,348.69899 760.75555,531.15431 953.73208,713.82391 760.75555,896.49341 567.552,1078.9486 375.00707,1262.0262 c -46.19471,43.7855 28.48812,112.1966 76.0571,67.1681 195.93558,-185.823 392.95261,-370.82479 587.98693,-557.52749 5.6117,-4.8034 10.4633,-10.2473 14.4855,-16.1231 9.643,-12.4844 13.9638,-27.0796 13.6909,-41.7198 0.2729,-14.6402 -4.0479,-29.2354 -13.6909,-41.7198 -4.0222,-5.8758 -8.8738,-11.3198 -14.4855,-16.1231 C 844.01678,469.27821 646.99975,284.27629 451.06417,98.45319 439.91519,87.89979 427.27628,83.57749 415.05387,83.70929 Z&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;

      

      
      
        
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 7px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item stroom-menu-item-leaf&#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Download&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M1675 832q0 53-37 90l-651 652q-39 37-91 37-53 0-90-37l-651-652q-38-36-38-90 0-53 38-91l74-75q39-37 91-37 53 0 90 37l294 294v-704q0-52 38-90t90-38h128q52 0 90 38t38 90v704l294-294q37-37 90-37 52 0 91 37l75 75q37 39 37 91z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Export
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;


&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Selecting one or more items in the explorer tree then clicking &lt;em&gt;Export&lt;/em&gt; from the right-click context menu.





  &lt;div class=&#34;stroom-theme-dark stroom-menu&#34;&gt;
    
    

      

      
      
        
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 0px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item stroom-menu-item-leaf&#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Download&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M1675 832q0 53-37 90l-651 652q-39 37-91 37-53 0-90-37l-651-652q-38-36-38-90 0-53 38-91l74-75q39-37 91-37 53 0 90 37l294 294v-704q0-52 38-90t90-38h128q52 0 90 38t38 90v704l294-294q37-37 90-37 52 0 91 37l75 75q37 39 37 91z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Export
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;


&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From the dialog that is displayed, the user can select which items to include in the import.
On clicking 






  
  
  


&lt;span class=&#34;stroom-theme-dark stroom-button stroom-button-primary&#34; title=&#34;OK button&#34; &gt;
  &lt;span class=&#34;stroom-icon inline-svg-button icon-button  icon-colour__grey&#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;OK&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 512 512&#34;&gt;&lt;!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --&gt;&lt;path style=&#34;fill:#fff&#34; d=&#34;M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z&#34;/&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
  &lt;span class=&#34;stroom-button-text&#34;&gt;OK&lt;/span&gt;
&lt;/span&gt;
 a confirmation dialog will be displayed confirming the number of items that will be exported, including a breakdown of counts by document type.&lt;/p&gt;
&lt;p&gt;The export will be written to a file called &lt;code&gt;StroomConfig.zip&lt;/code&gt; that will typically be located in the &lt;code&gt;Downloads&lt;/code&gt; directory on the users computer.&lt;/p&gt;

&lt;div class=&#34;alert alert-warning&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;alert-heading&#34;&gt;Warning&lt;/h4&gt;

    The import/export file format has changed across different versions of Stroom.
Stroom aims to support the import of older formats but older versions of Stroom may not be able to import a file exported by a newer version of Stroom.

&lt;/div&gt;


&lt;h2 id=&#34;importing-content&#34;&gt;Importing Content&lt;/h2&gt;
&lt;p&gt;Content can be imported using two methods:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Via the main menu:





  &lt;div class=&#34;stroom-theme-dark stroom-menu&#34;&gt;
    
    

      

      
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 0px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item &#34; &gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Tools
      &lt;/div&gt;
        &lt;div class=&#34;stroom-menu-item-arrow&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Arrow right&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1427.7665&#34; height=&#34;1427.7665&#34; viewBox=&#34;0 0 1427.7665 1427.7665&#34;&gt;&lt;g style=&#34;stroke:currentColor;stroke-width:167.567&#34;&gt;&lt;path d=&#34;m 415.05387,83.70929 c -39.92654,0.4303 -75.41463,48.3887 -40.0468,81.9121 C 567.552,348.69899 760.75555,531.15431 953.73208,713.82391 760.75555,896.49341 567.552,1078.9486 375.00707,1262.0262 c -46.19471,43.7855 28.48812,112.1966 76.0571,67.1681 195.93558,-185.823 392.95261,-370.82479 587.98693,-557.52749 5.6117,-4.8034 10.4633,-10.2473 14.4855,-16.1231 9.643,-12.4844 13.9638,-27.0796 13.6909,-41.7198 0.2729,-14.6402 -4.0479,-29.2354 -13.6909,-41.7198 -4.0222,-5.8758 -8.8738,-11.3198 -14.4855,-16.1231 C 844.01678,469.27821 646.99975,284.27629 451.06417,98.45319 439.91519,87.89979 427.27628,83.57749 415.05387,83.70929 Z&#34;/&gt;&lt;/g&gt;&lt;/svg&gt; &lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;

      

      
      
        
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 7px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item stroom-menu-item-leaf&#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Upload&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M1675 971q0 51-37 90l-75 75q-38 38-91 38-54 0-90-38l-294-293v704q0 52-37.5 84.5t-90.5 32.5h-128q-53 0-90.5-32.5t-37.5-84.5v-704l-294 293q-36 38-90 38t-90-38l-75-75q-38-38-38-90 0-53 38-91l651-651q35-37 90-37 54 0 91 37l651 651q37 39 37 91z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Import
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;


&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Right clicking anywhere in the explorer tree and clicking:





  &lt;div class=&#34;stroom-theme-dark stroom-menu&#34;&gt;
    
    

      

      
      
        
      


      

  
  
  &lt;div class=&#34;stroom-menu-item-background&#34; style=&#34;margin-top: 0px;&#34;&gt;
    
    &lt;div class=&#34;stroom-menu-item stroom-menu-item-leaf&#34; &gt;
        &lt;div class=&#34;stroom-menu-item-icon&#34;&gt;
          &lt;span class=&#34;stroom-icon inline-svg-button icon-button  &#34; &gt;
    &lt;span class=&#34;face&#34; title=&#34;Upload&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; width=&#34;1792&#34; height=&#34;1792&#34; viewBox=&#34;0 0 1792 1792&#34;&gt;&lt;path style=&#34;fill:var(--icon-colour__green)&#34; d=&#34;M1675 971q0 51-37 90l-75 75q-38 38-91 38-54 0-90-38l-294-293v704q0 52-37.5 84.5t-90.5 32.5h-128q-53 0-90.5-32.5t-37.5-84.5v-704l-294 293q-36 38-90 38t-90-38l-75-75q-38-38-38-90 0-53 38-91l651-651q35-37 90-37 54 0 91 37l651 651q37 39 37 91z&#34;/&gt;&lt;/svg&gt;&lt;/span&gt;
  &lt;/span&gt;
        &lt;/div&gt;

      &lt;div class=&#34;stroom-menu-item-text&#34;&gt;Import
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;/div&gt;


&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;importing-content-via-api&#34;&gt;Importing Content via API&lt;/h3&gt;
&lt;p&gt;It is possible to import content programmatically via Stroom&amp;rsquo;s API.
This involves a two-step process:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upload the content pack zip file to stroom, where it will be written to a temporary file on the Stroom server.&lt;/li&gt;
&lt;li&gt;Perform the import of the temporary file, referencing it using a &lt;em&gt;resource key&lt;/em&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The process is as follows:&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# This uploads the file to the stroom host and saves it in a temporary file
curl \
  -c /tmp/cookie.txt \
  -H &amp;#34;Authorization: Bearer ${TOKEN}&amp;#34; \
  -F &amp;#34;encoding=multipart/form-data&amp;#34; \
  -F fileUpload=&amp;#34;@/some/path/myContent.zip&amp;#34; \
  -X POST \
  https://&amp;lt;stroom FQDN&amp;gt;/importfile.rpc&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;This will write session information to &lt;code&gt;/tmp/cookie.txt&lt;/code&gt; (which must not exist beforehand) and return the resource key details:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-text&#34;&gt;#PM#success=true name=myContent.zip key=1c04efc6-1c3b-4ce2-9788-74c8b224c864#PM#
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;From this you will need to extract the &lt;code&gt;key&lt;/code&gt; and &lt;code&gt;name&lt;/code&gt; parts to use in the next request.&lt;/p&gt;
&lt;p&gt;Create the JSON request &lt;code&gt;/some/path/importRequest.json&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-json&#34;&gt;{
  &amp;quot;confirmList&amp;quot;: [],
  &amp;quot;importSettings&amp;quot;: {
    &amp;quot;importMode&amp;quot;: &amp;quot;CREATE_CONFIRMATION&amp;quot;
  },
  &amp;quot;resourceKey&amp;quot;: {
    &amp;quot;key&amp;quot;: &amp;quot;&amp;lt;the key&amp;gt;&amp;quot;,
    &amp;quot;name&amp;quot;: &amp;quot;&amp;lt;the name&amp;gt;&amp;quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above is the bare minimum needed for a default import.
For full details of the request format see &lt;span class=&#34;external-link&#34;&gt;
  &lt;a href=&#34;https://gchq.github.io/stroom/v7.12/#/Content/importContent&#34; target=&#34;_blank&#34; class=&#34;external-link&#34; title=&#34;swagger (external link to https://gchq.github.io/stroom/v7.12/#/Content/importContent)&#34;&gt;
    &lt;span&gt;swagger&lt;/span&gt;
    &lt;i class=&#34;external-link-icon fas fa-external-link-alt fa-sm text-secondary&#34;&gt;&lt;/i&gt;
  &lt;/a&gt;
&lt;/span&gt;
&lt;/p&gt;

  






&lt;div class=&#34;code-toolbar&#34;&gt;
  &lt;pre 
    class=&#34;command-line language-bash&#34; 
    data-user=&#34;user&#34; 
    data-host=&#34;localhost&#34; 
    data-continuation-str=&#34;\&#34;
    data-filter-output=&#34;(out)&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# This performs the import
curl \
  -b /tmp/cookie.txt \
  -X POST \
  -H &amp;#34;Authorization:Bearer $TOKEN&amp;#34; \
  -H &amp;#39;Content-Type: application/json&amp;#39; \
  --data @&amp;#39;/some/path/importRequest.json&amp;#39; \
  &amp;#34;https://&amp;lt;stroom FQDN&amp;gt;/api/content/v1/import&amp;#34;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;The above steps can be done in one simple step using this bash script:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;#!/usr/bin/env bash

# Script to import a single Stroom content pack ZIP file into Stroom.
# Requires that the environment variable TOKEN is set with either a
# valid API Key or an OAuth token.
# Usage:
# import_content.sh CONTENT_ZIP_FILE [URL_BASE]
# e.g. import_content.sh /some/path/StroomConfig.zip
# e.g. import_content.sh /some/path/StroomConfig.zip https://stroom.some.domain

set -e -o pipefail

main() {
  local content_zip_file=&amp;quot;${1:?content_zip_file must be provided}&amp;quot;; shift

  local url_base
  if [[ $# -gt 0 ]]; then
    url_base=&amp;quot;${1}&amp;quot;; shift
  else
    url_base=&amp;quot;http://localhost:8080&amp;quot;
    echo &amp;quot;Using default URL base &#39;${url_base}&#39;&amp;quot;
  fi

  local cookie_file
  # dry-run so we don&#39;t create the file, else curl will error
  cookie_file=&amp;quot;$( mktemp --dry-run &amp;quot;/tmp/request_cookie.XXXXXXXXXX&amp;quot; )&amp;quot;

  echo &amp;quot;Uploading file &#39;${content_zip_file}&#39; to a temporary file&amp;quot;
  
  local response1
  response1=&amp;quot;$( \
    curl \
      --silent \
      --cookie-jar &amp;quot;${cookie_file}&amp;quot; \
      --header &amp;quot;Authorization: Bearer ${TOKEN:? Set TOKEN env var with API key or Oauth token}&amp;quot; \
      --form &amp;quot;encoding=multipart/form-data&amp;quot; \
      --form fileUpload=&amp;quot;@${content_zip_file}&amp;quot; \
      --request POST \
      &amp;quot;${url_base}/importfile.rpc&amp;quot; \
  )&amp;quot;

  echo &amp;quot;File uploaded&amp;quot;

  local key
  key=&amp;quot;$( \
    grep \
      --only-matching \
      --perl-regexp \
      &#39;(?&amp;lt;=key=)[^ #]+&#39; \
      &amp;lt;&amp;lt;&amp;lt; &amp;quot;${response1}&amp;quot;
  )&amp;quot;

  # name is only really used for logging purposes in stroom, but provide
  # it anyway
  local name
  name=&amp;quot;$( \
    grep \
      --only-matching \
      --perl-regexp \
      &#39;(?&amp;lt;=name=)[^ #]+&#39; \
      &amp;lt;&amp;lt;&amp;lt; &amp;quot;${response1}&amp;quot;
  )&amp;quot;

  local import_request
  import_request=&amp;quot;{ \&amp;quot;confirmList\&amp;quot;: [], \&amp;quot;importSettings\&amp;quot;: { \&amp;quot;importMode\&amp;quot;: \&amp;quot;IGNORE_CONFIRMATION\&amp;quot; }, \&amp;quot;resourceKey\&amp;quot;: { \&amp;quot;key\&amp;quot;: \&amp;quot;${key}\&amp;quot;, \&amp;quot;name\&amp;quot;: \&amp;quot;${name}\&amp;quot; }  }&amp;quot;

  echo &amp;quot;Importing content&amp;quot;

  # Not interested in the response
  curl \
    --silent \
    --cookie &amp;quot;${cookie_file}&amp;quot; \
    --request POST \
    --header &amp;quot;Authorization:Bearer ${TOKEN:? Set TOKEN env var with API key or Oauth token}&amp;quot; \
    --header &#39;Content-Type: application/json&#39; \
    --data &amp;quot;${import_request}&amp;quot; \
    &amp;quot;${url_base}/api/content/v1/import&amp;quot; \
    &amp;gt; /dev/null

  echo &amp;quot;Content imported successfully&amp;quot;
  echo &amp;quot;Done!&amp;quot;
}

cleanup() {
  if [[ -f &amp;quot;${cookie_file}&amp;quot; ]]; then
    rm &amp;quot;${cookie_file}&amp;quot;
  fi
}

trap cleanup EXIT
trap cleanup SIGINT

main &amp;quot;$@&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

      </description>
    </item>
    
  </channel>
</rss>
