Monday 17 September 2012

rpi-update

https://raw.github.com/Hexxeh/rpi-update/master/rpi-update

#!/bin/bash
set -o nounset
set -o errexit

UPDATE=${UPDATE:-1}
UPDATE_URI="https://github.com/Hexxeh/rpi-update/raw/master/rpi-update"

ROOT_PATH=${ROOT_PATH:-"/"}
BOOT_PATH=${BOOT_PATH:-"/boot"}
SKIP_KERNEL=${SKIP_KERNEL:-0}
FW_REPO="git://github.com/Hexxeh/rpi-firmware.git"
FW_REPOLOCAL="${ROOT_PATH}/root/.rpi-firmware"
FW_PATH="${BOOT_PATH}"
FW_MODPATH="${ROOT_PATH}/lib/modules"
FW_RAM=${1:-0}
GITCMD="git --git-dir=\"${FW_REPOLOCAL}/.git\" --work-tree=\"${FW_REPOLOCAL}\""

function detect_split() {
 if [[ -f "$FW_PATH/start.elf" && ${FW_RAM} -eq 0 ]]; then
  echo "Autodetecting memory split"
  FW_RAM=240
  for R in 128 192 224 240
  do
   if [[ -f "$FW_PATH/arm${R}_start.elf" ]]
   then
          if diff "$FW_PATH/arm${R}_start.elf" "$FW_PATH/start.elf" >/dev/null
          then
            FW_RAM=$R
            break
          fi
   fi
  done
 fi
 FW_GPU=$((256-FW_RAM))
}

function update_self() {
 echo "Performing self-update"
 _tempFileName="$0.tmp"

 if ! wget --quiet --output-document="${_tempFileName}" "${UPDATE_URI}"; then
  echo "Failed to download update for rpi-update!"
  echo "Make sure you have ca-certificates installed and that the time is set correctly"
  exit 1
 fi

 OCTAL_MODE=$(stat -c '%a' "$0")
 if ! chmod ${OCTAL_MODE} "${_tempFileName}" ; then
    echo "Failed: Error while trying to set mode on ${_tempFileName}"
  exit 1
 fi

 cat > /tmp/updateScript.sh << EOF
 #!/bin/bash
 if mv "${_tempFileName}" "$0"; then
  rm -- "\$0"
  exec env UPDATE=0 /bin/bash "$0" "$FW_RAM"
 else
  echo "Failed!"
 fi
EOF

 exec /bin/bash /tmp/updateScript.sh
}

function update_modules {
 if [[ ${SKIP_KERNEL} -eq 0 ]]; then
  cp -R "${FW_REPOLOCAL}/modules/"* "${FW_MODPATH}/"
  find "${FW_REPOLOCAL}/modules" -mindepth 1 -maxdepth 1 -type d | while read DIR; do
   depmod -b "${ROOT_PATH}" -a $(basename "${DIR}")
  done
 fi
}

function update_sdk {
 if [[ -f /etc/init.d/vcfiled ]]; then
  /etc/init.d/vcfiled stop
 fi

 ELFOUTPUT=$(readelf -a "${ROOT_PATH}/bin/bash")
 if [ "${ELFOUTPUT}" != "${ELFOUTPUT/VFP_args/}" ]; then
  echo "Using HardFP libraries"
  cp -R "${FW_REPOLOCAL}/vc/hardfp/"* "${ROOT_PATH}/"
 else
  echo "Using SoftFP libraries"
  cp -R "${FW_REPOLOCAL}/vc/softfp/"* "${ROOT_PATH}/"
 fi
 cp -R "${FW_REPOLOCAL}/vc/sdk/"* "${ROOT_PATH}/"

 if [[ -f /etc/init.d/vcfiled ]]; then
  /etc/init.d/vcfiled start
 fi
}

function set_split {
 cp "${FW_PATH}/arm${FW_RAM}_start.elf" "${FW_PATH}/start.elf"
}

function update_firmware {
 cp "${FW_REPOLOCAL}/"*.elf "${FW_PATH}/"
 cp "${FW_REPOLOCAL}/"*.bin "${FW_PATH}/"
 if [[ ${SKIP_KERNEL} -eq 0 ]]; then
  cp "${FW_REPOLOCAL}/"*.img "${FW_PATH}/"
 else
  echo "Skipping kernel/modules updated as requested"
 fi
}

function finalise {
 ldconfig -r "${ROOT_PATH}"
 eval ${GITCMD} rev-parse master > "${FW_PATH}/.firmware_revision"
 sync
}

function download_repo {
 echo "Setting up firmware (this will take a few minutes)"
 mkdir -p "${FW_REPOLOCAL}"
 git clone "${FW_REPO}" "${FW_REPOLOCAL}" --depth=1 --quiet
 RETVAL=$?
 if [[ ${RETVAL} -ne 0 ]]; then
  echo "Failed to download new firmware files"
  exit 1
 fi
}

function update_repo {
 echo "Updating firmware (this will take a few minutes)"
 eval ${GITCMD} fetch --quiet
 RETVAL=$?
 if [[ ${RETVAL} -ne 0 ]]; then
  echo "Failed to download updated firmware files"
  exit 1
 fi
 eval ${GITCMD} merge origin/master -m "automerge" --quiet
 RETVAL=$?
 if [[ ${RETVAL} -ne 0 ]]; then
  echo "Failed to download updated firmware files"
  exit 1
 fi
}

function do_backup {
 cp -a "${FW_PATH}" "${FW_PATH}.bak"
 cp -a "${FW_MODPATH}" "${FW_MODPATH}.bak"
}

function do_update {
 update_firmware
 update_modules
 update_sdk
 set_split
 finalise
 echo "If no errors appeared, your firmware was successfully $1"
 if [[ "${ROOT_PATH}" == "/" ]]; then
  echo "A reboot is needed to activate the new firmware"
 fi
}

if [[ ${EUID} -ne 0 ]]; then
 echo "This tool must be run as root"
 exit 1
fi

if [[ ${UPDATE} -ne 0 ]]; then
 echo "Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS"
 update_self
fi

if [[ ( "${ROOT_PATH}" == "/"  &&  "${BOOT_PATH}" != "/boot" ) ]] ||
[[ ( "${BOOT_PATH}" == "/boot"  &&  "${ROOT_PATH}" != "/" ) ]]; then
 echo "You need to specify both ROOT_PATH and BOOT_PATH, or neither"
 exit 1
fi

if [[ ! -d "${FW_PATH}" ]]; then
 echo "${FW_PATH} doesn't exist"
 exit 1
fi
if [[ ! -f "${FW_PATH}/start.elf" ]]; then
 echo "${FW_PATH}/start.elf doesn't exist."
 exit 1
fi
if [[ ! -d "${FW_MODPATH}" ]]; then
 echo "${FW_MODPATH} doesn't exist"
 exit 1
fi

command -v git >/dev/null 2>&1 || {
 echo "This tool requires you have Git installed, please install it first"
 echo "In Debian, try: sudo apt-get install git-core"
 echo "In Arch, try: pacman -S git"
 exit 1
}

command -v readelf >/dev/null 2>&1 || {
 echo "This tool requires you have readelf installed, please install it first"
 echo "In Debian, try: sudo apt-get install binutils"
 echo "In Arch, try: pacman -S binutils"
 exit 1
}

detect_split
if [[ ${FW_RAM} -ne 240 ]] &&[[ ${FW_RAM} -ne 224 ]] && [[ ${FW_RAM} -ne 192 ]] && [[ ${FW_RAM} -ne 128 ]]; then
 echo "RAM value must be one of: 240, 224, 192, 128"
 exit 1
fi
echo "Using ARM/GPU memory split of ${FW_RAM}MB/${FW_GPU}MB"

if [[ -f "${FW_REPOLOCAL}/.git/config" ]]; then
 update_repo
 if [[ -f "${FW_PATH}/.firmware_revision" ]] && [[ $(cat "${FW_PATH}/.firmware_revision") == $(eval ${GITCMD} rev-parse master) ]]; then
  echo "Your firmware is already up to date"
  set_split
  finalise
 else
  do_update "updated"
 fi
else
 echo "We're running for the first time"
 download_repo
 do_backup
 do_update "setup"
fi

Raspberry pi - Update


CODE: SELECT ALL
sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install git-core
sudo rpi-update
sudo reboot

Monday 10 September 2012

Unmanage CRM 2011 solution

-- Update the "managed" flag in the database
-- List the managed solutions
select isvisible,IsManaged,Description,UniqueName,* from Solution
where IsManaged = 1 and IsVisible = 1

-- 
begin transaction
update Solution
set IsManaged = 0
where UniqueName = <solution name to change>
commit transaction

Friday 7 September 2012

Load an external JavaScript file CRM 2011/4


            try {
                var docs = document.getElementById('eb.script.201200906');
                if (docs == null) {
                    var script = document.createElement('script');
                    script.id = 'eb.script.201200906';
                    script.language = 'javascript';
                    script.src = '/ISV/EB/ScriptFile.js';
                    document.getElementsByTagName('head')[0].appendChild(script);
                    var f = function () {
                        if (event.srcElement.readyState == 'loaded' || event.srcElement.readyState == 'complete')
                            ScriptStart();  // Entry function
                    }
                    script.attachEvent('onreadystatechange', f);
                }
            }
            catch (err) { }

Wednesday 5 September 2012

CRM 2011: Accessing hidden mappings opportunity/quote/order/invoice


declare @maPID AS NVARCHAR(50)
declare @maPORT as int ; set @maPORT = 5555
-- -------------------------------------------------------
SET @maPID = (SELECT EntityMapId FROM EntityMapBase
WHERE TargetEntityName='quotedetail' AND SourceEntityName='opportunityproduct')

print 'http://' + @@Servername + ':' + 
 cast(@maPORT as nvarchar(30)) + '/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=' + @mapid
-- -------------------------------------------------------
SET @maPID = (SELECT EntityMapId FROM EntityMapBase
WHERE TargetEntityName='salesorderdetail' AND SourceEntityName='quotedetail')

print 'http://' + @@Servername + ':' + 
 cast(@maPORT as nvarchar(30)) + '/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=' + @mapid
-- -------------------------------------------------------
SET @maPID = (SELECT EntityMapId FROM EntityMapBase
WHERE TargetEntityName='invoicedetail' AND SourceEntityName='salesorderdetail')

print 'http://' + @@Servername + ':' + 
 cast(@maPORT as nvarchar(30)) + '/Tools/SystemCustomization/Relationships/Mappings/mappingList.aspx?mappingId=' + @mapid