*!version 1.0
** do createMenu4Installpkg.do to add installpkg into Window User Menu
cap program drop giteeinstallmenu
program define giteeinstallmenu

 version 14

 syntax

local path= subinstr("`c(sysdir_stata)'","\","/",.)
cap findfile profile.do,path(`path')

if _rc!=0{
	mata: _creatprofile("`path'")
	di `"profile.do created in `path'"'

}


    mata: _installpkgmenu("`path'")


end



cap program drop winfresh
program define winfresh

if (`0'==1){

	  window menu append item "InstallPackage" "giteeinstall" "db gitee"
	  window menu refresh

}
else{

	  window menu append submenu "stUser" "InstallPackage"
	  window menu append item "InstallPackage" "giteeinstall" "db gitee"
	  window menu refresh

}


end



cap mata mata drop _creatprofile()
cap mata mata drop _installpkgmenu()

mata:

void function _creatprofile(string scalar path)
{
	pathfilename=path+"profile.do"
	writefile=fopen(pathfilename,"a")
	fwrite(writefile, sprintf("*created by installpkgmenu.ado \r\n"))
	fwrite(writefile, sprintf("  \r\n"))
	fclose(writefile)


}


void function _installpkgmenu(string scalar path)
{
	pathfilename=path+"profile.do"

	file=cat(pathfilename)
	flag=regexm(file,`"^( )*(window)( .*)("InstallPackage")( )+("giteeinstall")( )+("db gitee")(.*)"')
	if(sum(flag)>0){
		printf("giteeinstall Menu Information already exists in profile.do. \n")
	}
	else{
		    flag=regexm(file,`"^( )*(window)( .*)(submenu)( )+("stUser")( )+("InstallPackage")(.*)"')
			flag=sum(flag)
			writefile=fopen(pathfilename,"a")
			fwrite(writefile, sprintf("  \r\n"))
			fwrite(writefile, sprintf("******** added by giteeinstallmenu.ado \r\n"))
            if(!flag){
			    fwrite(writefile, sprintf(`"window menu append submenu "stUser" "InstallPackage"  \r\n"'))
            }
			fwrite(writefile, sprintf(`"window menu append item "InstallPackage" "giteeinstall" "db gitee"  \r\n"'))
			fwrite(writefile, sprintf("window menu refresh \r\n"))
			fwrite(writefile, sprintf("********  \r\n"))
			fclose(writefile)
			printf("completed writing giteeinstall Menu Information in profile.do. \n")
			stataexc="winfresh " + strofreal(flag)
			stata(stataexc)


	}

}



end




/***incompleted utility function 2020/02/29
void function _installpkgmenu(string scalar path,string scalar submenu,string scalar item,string scalar dbc)
{
	pathfilename=path+"profile.do"

	file=cat(pathfilename)
	expr=sprintf(`"^( )*(window)( .*)("%s")( )+("%s")( )+("%s")(.*)"',submenu,item,dbc)
	//flag=regexm(file,`"^( )*(window)(.*)("InstallPackage")( )*("giteeinstall")( )*("db gitee")(.*)"')
	flag=regexm(file,expr)

	if(sum(flag)>0){
		printf("%s-%s Menu Information already exists in profile.do. \n",submenu,item)
	}
	else{
			expr=sprintf(`"^( )*(window)( .*)(submenu)( )+("stUser")( )+("%s")(.*)"',item)
		    //flag=regexm(file,`"^( )*(window)( .*)+(submenu)( )+("stUser")( )+("InstallPackage")(.*)"')
			flag=sum(flag)
			writefile=fopen(pathfilename,"a")
			fwrite(writefile, sprintf("  \r\n"))
			fwrite(writefile, sprintf("******** added by giteeinstallmenu.ado \r\n"))
            if(!flag){
			    fwrite(writefile, sprintf(`"window menu append submenu "stUser" "InstallPackage"  \r\n"'))
            }
			fwrite(writefile, sprintf(`"window menu append item "InstallPackage" "giteeinstall" "db gitee"  \r\n"'))
			fwrite(writefile, sprintf("window menu refresh \r\n"))
			fwrite(writefile, sprintf("********  \r\n"))
			fclose(writefile)
			printf("completed writing giteeinstall Menu Information in profile.do. \n")
			stataexc="winfresh " + strofreal(flag)
			stata(stataexc)


	}

}



end
**/