관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

에디트플러스에서 오토핫키를 이용한 ioncube 파일별 컴파일러 본문

AUTOHOTKEY/유틸리티

에디트플러스에서 오토핫키를 이용한 ioncube 파일별 컴파일러

님투 2012. 8. 8. 21:57

logo

http://ioncube.co.kr/

제작 개요

파일 하나를 수정해서 바로 적용하고자 할때  다시 전체 파일을 컴파일하는 것은 시간적으로나  엑세스 조건등 

이것을 간결하게 파일별로 컴파일이 가능하도록  아이온큐브의 명령어를 이용해서  쉽게 컴파일 할수 있게 해주는 유틸리티 이다

여러 프로젝트를 작업한다면 디렉토리 별로 프로그램을 복사해서  설정파일  XML 파일을 수정해서 

사용자 도구에 등록하면 프로젝트 별로 컴파일이 가능하다.

개인적인 사용 목적에 의해서 제작 하긴 했지만  사용법에 이해가 안되거나 하면 댓글을 통해서 알려주세요.

한번 해두면  그리고 한번 설정하는 방법말 알면  다음 부터는  편한 작업이 가능합니다.





명령 : C:\Program Files (x86)\EditPlus 3\IoncubeShell.exe

인수 : "$(FilePath)" -o "$(FileDirNoDrv)" "$(FileName)"

※ 명령은 IoncubeShell.exe 컴파일 도우미 실행파일 절대경로 위치

※ 인수는 복사해서 그대로 사용


<ioncube>
  <info>
    <phpver>1.0</phpver>
    <ioncube_dir>C:\Program Files (x86)\ionCube Cerberus PHP Encoder 7.0\</ioncube_dir>
    <ioncube_exe>ioncube_encoder53.exe</ioncube_exe>
    <ioncom_dir>D:\run</ioncom_dir>
    <backup_dir>D:\_back</backup_dir>
    <expireon>2013-04-30</expireon>
    <addcomment></addcomment>
  </info></ioncube>

  • ioncube_dir
    • 아이온큐브가 설치된 디렉토리  끝에  \  항상 포함
  • ioncube_exe
    • 컴파일할 버전 선택
  • ioncom_dir
    • 컴파일된 파일이 저장되는 위치
    • 저장시 현재 파일의 디렉토리 구조를 그대로 가져가서 복사
  • backup_dir
    • 날짜 별로 컴파일 되기전 파일을 디렉토리 구조를 유지하면서  날짜표시해서 저장합니다.
    • 에디트플러스의 백업 기능을 좀더 세밀하게 저장하기 위해서 사용합니다.
  • expireon
    • 컴파일된 파일읠 수명을 지정합니다.   
    • 아무것도 없으면  제한 없음


;-----------------------------------------
; 오토핫키 파일
; 컴파일 파일
;-----------------------------------------
#SingleInstance force 
#NoTrayIcon		; 프로그램이 트레이로 들어가지 않도록

; ioncube_encoder source_file.php -o target_file.php
; 파일 생성 확인 후 없으면 생성
IfNotExist, %A_Scriptdir%\ioncubeShell.xml
{
FileAppend,
(
<ioncube> 
  <info> 
    <phpver>1.0</phpver>
    <ioncube_dir>C:\Program Files\ionCube Cerberus PHP Encoder 7.0\</ioncube_dir>
    <ioncube_exe>ioncube_encoder5.exe</ioncube_exe>
    <ioncom_dir>L:\APM_Setup\compile_ioncube</ioncom_dir>
    <backup_dir>L:\APM_Setup\compile_ioncube\_backup</backup_dir>
    <expireon>2013-04-30</expireon>
    <addcomment></addcomment>
  </info> 
</ioncube>
), %A_Scriptdir%\ioncubeShell.xml
}


; 기본 설정 로드
xml_info = %A_Scriptdir%\ioncubeShell.xml
xpath_load(xml, xml_info)
phpver 		:= XPath(xml, 	"/ioncube/info/phpver/text()") 
iondir 		:= XPath(xml, 	"/ioncube/info/ioncube_dir/text()") 
ionexe 		:= XPath(xml, 	"/ioncube/info/ioncube_exe/text()") 
ioncomdir 	:= XPath(xml, 	"/ioncube/info/ioncom_dir/text()") 
backupdir 	:= XPath(xml, 	"/ioncube/info/backup_dir/text()") 

; 추가 옵션
; --expire-on <yyyy-mm-dd>
expireon	:= XPath(xml, 	"/ioncube/info/expireon/text()") 
addcomment 	:= XPath(xml, 	"/ioncube/info/addcomment/text()") 

; 외부 변수 설정
source_file=%1%
option=%2%
target_dir=%3%
target_file=%4%

; APM_Setup 삭제 후 디렉토리 명 변경
;StringReplace, target_dir, target_dir, APM_Setup\, , All
StringSplit, Copy_file, target_file, .,
FormatTime, TimeString, , yyyy-MM-dd_hh-mm-ss

if (option = "-o")
{

	if %expireon%
	{
		op_expireon = --expire-on %expireon%
	}

	; 폴더 생성
	FileCreateDir, %ioncomdir%%target_dir%
	FileCreateDir, %backupdir%%target_dir%

	IfExist, %source_file%
	{
		;FileMove, %ioncomdir%%target_dir%\%target_file%, %backupdir%%target_dir%\%Copy_file1%_%TimeString%.%Copy_file2%
		FileCopy, %source_file%, %backupdir%%target_dir%\%Copy_file1%_%TimeString%.%Copy_file2%
	}
	; 컴파일 시작
	;clipboard="%iondir%%ionexe%" "%source_file%" %option% "%ioncomdir%%target_dir%\%target_file%" %op_expireon% %addcomment%
	run, "%iondir%%ionexe%" "%source_file%" %option% "%ioncomdir%%target_dir%\%target_file%" %op_expireon% %addcomment%
	;msgbox, "%iondir%%ionexe%" "%source_file%" %option% "%ioncomdir%%target_dir%\%target_file%" %op_expireon% %addcomment%
}
else
{
	IfExist, %source_file%
	{
		; 현재 파일을 저장 폴더로 넘긴다
		;FileMove, %ioncomdir%%target_dir%\%target_file%, %backupdir%%target_dir%\%Copy_file1%_%TimeString%.%Copy_file2%
		FileCopy, %source_file%, %backupdir%%target_dir%\%Copy_file1%_%TimeString%.%Copy_file2%
	}
	; 컴파일 하지 않고 소스를 그대로 복사
	FileDelete, %ioncomdir%%target_dir%\%target_file%
	FileCopy, %source_file%, %ioncomdir%%target_dir%\%target_file%
}

ExitApp
Return

#include %A_ScriptDir%\Ioncube5_lib.ahk

IoncubeShell.exe


ioncubeShell.xml



0 Comments
댓글쓰기 폼