grahampugh / jamf-upload

Scripts for uploading packages to Jamf Cloud
Apache License 2.0
150 stars 39 forks source link

ProcessorError: Unsubstitutable key in template found: 'NAME' #176

Open richard-a-adams opened 1 day ago

richard-a-adams commented 1 day ago

Hi, I'm having an issue uploading a script using the jamf_upload.sh method. Any help is appreciated.

Thank you!

./jamf-upload.sh script -vvvv --url --clientid --clientsecret --name super-5.0.0 --script /Users/richard.adams/Downloads/super-5.0.0/super.sh File Doesn't Exist, Will Create: /private/tmp/processor.plist Initializing Plist... [jamf-upload] Wrote RECIPE_DIR='.' into /tmp/processor.plist [jamf-upload] Wrote verbose='4' into /tmp/processor.plist [jamf-upload] Wrote JSS_URL=into /tmp/processor.plist [jamf-upload] Wrote CLIENT_ID= into /tmp/processor.plist [jamf-upload] Wrote CLIENT_SECRET= into /tmp/processor.plist [jamf-upload] Wrote script_name='super-5.0.0' into /tmp/processor.plist [jamf-upload] Wrote script_path='/Users/richard.adams/Downloads/super-5.0.0/super.sh' into /tmp/processor.plist JamfScriptUploader: No value supplied for script_category, setting default value of: JamfScriptUploader: No value supplied for script_priority, setting default value of: AFTER JamfScriptUploader: No value supplied for osrequirements, setting default value of: JamfScriptUploader: No value supplied for script_info, setting default value of: JamfScriptUploader: No value supplied for script_notes, setting default value of: JamfScriptUploader: No value supplied for script_parameter4, setting default value of: JamfScriptUploader: No value supplied for script_parameter5, setting default value of: JamfScriptUploader: No value supplied for script_parameter6, setting default value of: JamfScriptUploader: No value supplied for script_parameter7, setting default value of: JamfScriptUploader: No value supplied for script_parameter8, setting default value of: JamfScriptUploader: No value supplied for script_parameter9, setting default value of: JamfScriptUploader: No value supplied for script_parameter10, setting default value of: JamfScriptUploader: No value supplied for script_parameter11, setting default value of: JamfScriptUploader: No value supplied for skip_script_key_substitution, setting default value of: False JamfScriptUploader: No value supplied for replace_script, setting default value of: False JamfScriptUploader: No value supplied for sleep, setting default value of: 0 JamfScriptUploader: Checking for existing authentication token JamfScriptUploader: No existing valid token found JamfScriptUploader: Getting an authentication token using OAuth JamfScriptUploader: Output file is: /tmp/jamf_upload_8qcs13vi/jamf_upload_4j4t3d4v.txt JamfScriptUploader: No existing cookie found - starting new session JamfScriptUploader: curl command: /usr/bin/curl --location --dump-header /tmp/jamf_upload_8qcs13vi/curl_headers_from_jamf_upload.txt --header User-Agent: JamfUploader/2024.10.17.0 --request POST --silent --show-error --header Content-Type: application/x-www-form-urlencoded --output /tmp/jamf_upload_8qcs13vi/jamf_upload_4j4t3d4v.txt --cookie-jar /tmp/jamf_upload_8qcs13vi/curl_cookies_from_jamf_upload.txt --data-urlencode client_id= --data-urlencode grant_type=client_credentials --data-urlencode client_secret= JamfScriptUploader: Session token received JamfScriptUploader: Token: JamfScriptUploader: Expires: 2024-10-25T00:20:10.246211Z JamfScriptUploader: Checking for existing 'super-5.0.0' on JamfScriptUploader: Full path: /Users/richard.adams/Downloads/super-5.0.0/super.sh JamfScriptUploader: Output file is: /tmp/jamf_upload_8qcs13vi/jamf_upload_8fcu7861.txt JamfScriptUploader: curl command: /usr/bin/curl --location --dump-header /tmp/jamf_upload_8qcs13vi/curl_headers_from_jamf_upload.txt uapi/v1/scripts?page=0&page-size=1000&sort=id&filter=name%3D%3D%22super-5.0.0%22 --header User-Agent: JamfUploader/2024.10.17.0 --request GET --silent --show-error --header authorization: Bearer '' --header Accept: application/json --output /tmp/jamf_upload_8qcs13vi/jamf_upload_8fcu7861.txt --cookie-jar /tmp/jamf_upload_8qcs13vi/curl_cookies_from_jamf_upload.txt --cookie /tmp/jamf_upload_8qcs13vi/curl_cookies_from_jamf_upload.txt JamfScriptUploader: WARNING: 'NAME' has no replacement object! ProcessorError: Unsubstitutable key in template found: 'NAME'

grahampugh commented 1 day ago

Without looking at the "super" script, I'm going to take a guess that it includes some lines with ampersands in them, specifically %NAME%. This is special syntax in JamfUploader that allows you to substitute values within scripts.

However, for scripts that don't need any substitutions, you can add the the option skip_script_key_substitution.

grahampugh commented 1 day ago

See https://github.com/grahampugh/jamf-upload/wiki/JamfUploader-Tips,-Tricks,-FAQs#how-do-i-handle-importing-a-script-that-genuinely-has-percent-signs-in-it for more details.