You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
5.2 KiB
Plaintext
155 lines
5.2 KiB
Plaintext
4 months ago
|
;---ENVIRONMENT---------------------------------------------------------------------
|
||
|
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
|
||
|
;#Warn ; Enable warnings to assist with detecting common errors.
|
||
|
;DetectHiddenWindows, On
|
||
|
#SingleInstance, Force
|
||
|
DetectHiddenWindows, ON
|
||
|
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
|
||
|
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
|
||
|
;SetKeyDelay, 500
|
||
|
CoordMode, ToolTip, Screen
|
||
|
CoordMode, Mouse, Screen
|
||
|
; #NoTrayIcon
|
||
|
; Menu, Tray, Icon, RMScriptManager.ico
|
||
|
|
||
|
;---Notes/Extra Info/#Includes------------------------------------------------------
|
||
|
#Include, %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\WindowCredentialManager.ahk
|
||
|
|
||
|
;---VARIABLES-----------------------------------------------------------------------
|
||
|
ProgramName = Freedomain Social Media Poster
|
||
|
ExeProgramName = %ProgramName%.exe
|
||
|
AHKFilepath = %A_ScriptDir%\%ProgramName%.ahk
|
||
|
Exefilepath = %A_ScriptDir%\%ProgramName%.exe
|
||
|
icopath = %A_ScriptDir%\Assets\Icon.ico
|
||
|
VersionIniFP = %A_ScriptDir%\Version.ini
|
||
|
|
||
|
; Generate a new errorlog text file each run
|
||
|
FormatTime, TodayDate , YYYYMMDDHH24MISS, yyyyMMdd_hhmmss
|
||
|
ErrorLogTextFile = %A_ScriptDir%\Lib\ErrorLogging\Compiler_%TodayDate%.txt
|
||
|
|
||
|
|
||
|
; Read Credential token from Windows Credential Manager using WindowCredentialManager.ahk
|
||
|
cred := CredRead("FDR-Gitea-Token")
|
||
|
GiteaToken := Cred.Password
|
||
|
|
||
|
; Info for Creating the Release with Gitea-CreateRelease.ps1
|
||
|
CreateReleasePS1Filepath = %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\Gitea-CreateRelease.ps1
|
||
|
CreateReleaseAPIURL = https://freedomain.dev/api/v1/repos/yuriy/social-media-poster/releases?token=%GiteaToken%
|
||
|
|
||
|
; Info for Attaching exe file to release using Gitea-AttachAssetToRelease.ps1
|
||
|
AttachAssetToReleasePS1Filepath = %A_ScriptDir%\Lib\Freedomain-Posters-Shared-Functions\Gitea-AttachAssetToRelease.ps1
|
||
|
AttachAssetToReleaseAPIURL = https://freedomain.dev/api/v1/repos/yuriy/social-media-poster/releases
|
||
|
|
||
|
;---\VARIABLES-----------------------------------------------------------------------
|
||
|
|
||
|
|
||
|
|
||
|
; Compile to .exe
|
||
|
; ------------------------------------------------
|
||
|
; Bump the version number in the version.ini file
|
||
|
IniRead, VersionNumber, %VersionIniFP%, Social-Media-Poster, Version, 0.0 ; , Filename, Section, Key [, Default]
|
||
|
VersionNumber += .01
|
||
|
VersionNumber := SubStr(VersionNumber, 1, 4)
|
||
|
IniWrite, %VersionNumber%, %VersionIniFP%,Social-Media-Poster, Version
|
||
|
|
||
|
|
||
|
|
||
|
; Kill any active intances of the uploaders so the .exe file can be overwriten by the compilation
|
||
|
process, close, %ExeProgramName%
|
||
|
|
||
|
sleep, 500
|
||
|
|
||
|
; Delete the .exe file so it can be repalced
|
||
|
if(FileExist(Exefilepath)){
|
||
|
FileDelete, %Exefilepath%
|
||
|
if(ErrorLevel){
|
||
|
msgbox, failed to delete Exe file. Please delete manually and re-run the compiler.
|
||
|
ExitApp
|
||
|
}
|
||
|
}
|
||
|
|
||
|
; check if file exists and if not, give user error and stop
|
||
|
if(!FileExist(AHKFilepath)){
|
||
|
msgbox, %AHKFilepath% does not exist`nExiting
|
||
|
ExitApp
|
||
|
}
|
||
|
|
||
|
; check if file exists and if not, give user error and stop
|
||
|
if(!FileExist(icopath)){
|
||
|
msgbox, %icopath% does not exist`nExiting
|
||
|
ExitApp
|
||
|
}
|
||
|
|
||
|
; run, %comspec% /c ""C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in "%AHKFilepath%" /out "%exefilepath%" /icon "%icopath%""
|
||
|
Command = "C:\Program Files\AutoHotkey\Compiler\Ahk2Exe.exe" /in "%AHKFilepath%" /out "%exefilepath%" /icon "%icopath%"
|
||
|
Results := RunCMD(Command)
|
||
|
LogToErrorLogFile(Results, ErrorLogTextFile)
|
||
|
|
||
|
if(!InStr(Results, "Successfully")){
|
||
|
Msgbox, Error, Compilation failed with the following error:`n`n%Results%
|
||
|
ExitApp
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
; Create new Release on Gitea using Gitea-CreateRelease.ps1
|
||
|
; ------------------------------------------------
|
||
|
InputBox, ReleaseBody, Release Body, Please Input Text to be used in the Release Body
|
||
|
|
||
|
ReleaseName := VersionNumber
|
||
|
ReleaseTag := VersionNumber
|
||
|
|
||
|
; Strings with spaces in them need to be surrounted by a single quote and double quote, eg: "'spaced string'"
|
||
|
Command = Powershell "%CreateReleasePS1Filepath%" "%CreateReleaseAPIURL%" "%ReleaseName%" "%ReleaseTag%" "'%ReleaseBody%'"
|
||
|
|
||
|
Message = PowerShell Command to Create Release:`n%Command%
|
||
|
LogToErrorLogFile(Message, ErrorLogTextFile)
|
||
|
|
||
|
Results := RunCMD(Command)
|
||
|
LogToErrorLogFile(Results, ErrorLogTextFile)
|
||
|
|
||
|
|
||
|
; Pull out the release ID Number, needed for attaching a file to the release
|
||
|
SplitText = @{id=
|
||
|
SplitText2 = `;
|
||
|
ReleaseID := StrSplit(Results, SplitText)[2]
|
||
|
ReleaseID := StrSplit(ReleaseID, SplitText2)[1]
|
||
|
|
||
|
Message = ReleaseID: %ReleaseID%
|
||
|
LogToErrorLogFile(Message, ErrorLogTextFile)
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
; Attach .exe File to Release using Gitea-AttachAssetToRelease.ps1
|
||
|
; ------------------------------------------------
|
||
|
AttachAssetToReleaseAPIURL = %AttachAssetToReleaseAPIURL%/%ReleaseID%/assets
|
||
|
|
||
|
; Strings with spaces in them need to be surrounted by a single quote and double quote, eg: "'spaced string'"
|
||
|
Command = Powershell "%AttachAssetToReleasePS1Filepath%" "%AttachAssetToReleaseAPIURL%" "%GiteaToken%" "'%ExeProgramName%'" "'%Exefilepath%'"
|
||
|
LogToErrorLogFile(Command, ErrorLogTextFile)
|
||
|
|
||
|
Results := RunCMD(Command)
|
||
|
LogToErrorLogFile(Results, ErrorLogTextFile)
|
||
|
|
||
|
|
||
|
ExitApp
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
;---FUNCTIONS-----------------------------------------------------------------------
|
||
|
LogToErrorLogFile(Text, TextFileFilepath){
|
||
|
FileAppend, %Text%`n, %TextFileFilepath%
|
||
|
}
|