fossology web 편집, 수정하기


이 포스팅에서는 localhost:8081/repo로 접속했을 때 나오게되는 fossology 웹 인터페이스 페이지를

수정하기 위한 경로에 대해서 알아봅니다.


우선 웹페이지들이 담긴 디렉터리를 찾아 들어갑니다

fossology가 패키지에 의해 설치 되었다면, 

fossology 웹 루트는 "/usr/share/fossology/www/"이며, 

소스 설치가 사용 된 경우 웹 루트는 '/usr/local/share/fossology/www/'입니다.

저같은 경우에는 Docker를 이용하여 설치했기 때문에 후자의 경로로 들어갔습니다.


현재 다른 부분에 대한 내용도 파악중인 부분이긴 하지만,

여러분들이 /repo페이지에서 보게되는 핵심적인 html소스들은 다음과 같습니다.


해당 웹루트 경로에서부터 "ui\template"


우선 여기로 들어가면, twig 확장자가 나오게 됩니다..

해당 내용을 보시면 대체로 우리가 눈에 보이게 되는 html 파일들이 들어있습니다.


html이면 html이지, 뒤에 붙은 twig는 무엇인지 의문을 가지게 됐는데요,

확인해보니 PHP 언어의 템플릿 엔진이라고 합니다..(한국어로 된 정보는 거의 없는것 같네요 -.-;;;)

구태여 twig가 무엇인지 잘 알진 못하더라도, 결국에는 우리가 잘 알고있는 html 소스코드들이 나와있기 때문에

뭔가 부족하고 허접(?)해 보이는 UI를 수정 할 수 있을 것같은 자신감이 듭니다!


fossology에 대한 새로운 정보를 얻게 되면 다시 포스팅 남기겠습니다.

fossology에 대한 자료 자체가 얻기가 힘드네요 ㅜ.ㅜ;;;


참조 url

fossology 웹루트 경로 : http://archive15.fossology.org/projects/fossology/wiki/Config-How_to_Configure_the_FOSSology_site

twig : https://en.wikipedia.org/wiki/Twig_(template_engine)

'Develop Issue > Fossology' 카테고리의 다른 글

Fossology URL query별 접속되는 페이지 알아보기  (1) 2017.11.13
Fossology란 무엇인가  (0) 2017.11.09

FOSSology는 오픈 소스 라이센스 컴플라이언스 소프트웨어 시스템 및 툴킷이다. 비슷한 종류로는 Jninka가 있다.

우리는 이를 활용해서 프로젝트에 어떤 라이센스 및 저작권이 사용되었는지 스캔 할 수 있다. PostgreSQL 기반의 데이터베이스를 사용하며

웹 UI를 통해 워크 플로우를 확인 할 수 있다.. 일단 검색하면 Fossology에 대한 공식 사이트를 확인 할 수 있으며, github를 통해 오픈소스를 받을 수 있다.


설치의 경우 Ununtu 리눅스에 최적화 되어있다..

현재 CentOS에 계속 삽질을 했으나.. 역시나 우분투로 진행하는게 훨씬 나은 것 같다..

Docker로 컨테이너 지원을 하고 있으니, 이를 활용하면 무척 간편하게 설치하여 이용 할 수 있다!

'Develop Issue > Fossology' 카테고리의 다른 글

Fossology URL query별 접속되는 페이지 알아보기  (1) 2017.11.13
fossology web 편집하기  (0) 2017.11.10

https://webdesign.tutsplus.com/ko/tutorials/the-holy-grail-of-css-centering--cms-22114

http://ande226.tistory.com/101

http://egloos.zum.com/kwaknu/v/4988500

http://loveiskey.tistory.com/39


https://developer.mozilla.org/ko/docs/AJAX/Getting_Started


참고하세요~!

<%

/*

Object[][] sampleArr = {

{"초아", "AOA","걸그룹",25}

,{"전효성","시크릿","가수",26}

,{"정은지","에이핑크","탤런트",22}

,{"배수지","미스에이","영화배우",21}

};

JSONObject jsonList = new JSONObject();

JSONArray itemList = new JSONArray();


for(int i = 0; i < sampleArr.length;i++){

JSONObject tempJson = new JSONObject();

tempJson.put("name", sampleArr[i][0]);

tempJson.put("group", sampleArr[i][1]);

tempJson.put("job", sampleArr[i][2]);

tempJson.put("age", sampleArr[i][3]);

itemList.add(tempJson);


}

jsonList.put("TOTAL",sampleArr.length);

jsonList.put("ITEMS", itemList);

out.print("<script> alert('" + jsonList + "'); </script>");

*/

//JSON 데이터

String jsonInfo = "{\"books\":[{\"genre\":\"소설\",\"price\":\"100\",\"name\":\"사람은 무엇으로 사는가?\",\"writer\":\"톨스토이\",\"publisher\":\"톨스토이 출판사\"},{\"genre\":\"소설\",\"price\":\"300\",\"name\":\"홍길동전\",\"writer\":\"허균\",\"publisher\":\"허균 출판사\"},{\"genre\":\"소설\",\"price\":\"900\",\"name\":\"레미제라블\",\"writer\":\"빅토르 위고\",\"publisher\":\"빅토르 위고 출판사\"}],\"persons\":[{\"nickname\":\"남궁민수\",\"age\":\"25\",\"name\":\"송강호\",\"gender\":\"남자\"},{\"nickname\":\"예니콜\",\"age\":\"21\",\"name\":\"전지현\",\"gender\":\"여자\"}]}";


/*

{

    "books": [

        {

            "genre": "소설",

            "price": "100",

            "name": "사람은 무엇으로 사는가?",

            "writer": "톨스토이",

            "publisher": "톨스토이 출판사"

        },

        {

            "genre": "소설",

            "price": "300",

            "name": "홍길동전",

            "writer": "허균",

            "publisher": "허균 출판사"

        },

        {

            "genre": "소설",

            "price": "900",

            "name": "레미제라블",

            "writer": "빅토르 위고",

            "publisher": "빅토르 위고 출판사"

        }

    ],

    "persons": [

        {

            "nickname": "남궁민수",

            "age": "25",

            "name": "송강호",

            "gender": "남자"

        },

        {

            "nickname": "예니콜",

            "age": "21",

            "name": "전지현",

            "gender": "여자"

        }

    ]

}

 */


try {


    JSONParser jsonParser = new JSONParser();

     

    //JSON데이터를 넣어 JSON Object 로 만들어 준다.

    JSONObject jsonObject = (JSONObject) jsonParser.parse(jsonInfo);

     

    //books의 배열을 추출

    JSONArray bookInfoArray = (JSONArray) jsonObject.get("books");


    System.out.println("* BOOKS *");


    for(int i=0; i<bookInfoArray.size(); i++){


        System.out.println("=BOOK_"+i+" ===========================================");

         

        //배열 안에 있는것도 JSON형식 이기 때문에 JSON Object 로 추출

        JSONObject bookObject = (JSONObject) bookInfoArray.get(i);

         

        //JSON name으로 추출

        System.out.println("bookInfo: name==>"+bookObject.get("name"));

        System.out.println("bookInfo: writer==>"+bookObject.get("writer"));

        System.out.println("bookInfo: price==>"+bookObject.get("price"));

        System.out.println("bookInfo: genre==>"+bookObject.get("genre"));

        System.out.println("bookInfo: publisher==>"+bookObject.get("publisher"));


    }


    JSONArray personInfoArray = (JSONArray) jsonObject.get("persons");


    System.out.println("\r\n* PERSONS *");


    for(int i=0; i<personInfoArray.size(); i++){



        System.out.println("=PERSON_"+i+" ===========================================");


        JSONObject personObject = (JSONObject) personInfoArray.get(i);

    out.print("<script> alert('" + personObject.get("name") + "'); </script>");

        System.out.println("personInfo: name==>"+personObject.get("name"));

        System.out.println("personInfo: age==>"+personObject.get("age"));

        System.out.println("personInfo: gender==>"+personObject.get("gender"));

        System.out.println("personInfo: nickname==>"+personObject.get("nickname"));


    }


} catch (ParseException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

}

%>


<%

   try{

      //URLConnection을 이용한 스트림 생성

      URL url = new URL("http","10.1.97.1", 8080, "/assets/new");

      URLConnection conn = (URLConnection) url.openConnection(); 

      InputStream is = conn.getInputStream(); 

      InputStreamReader isr = new InputStreamReader(is,"utf-8");

      BufferedReader br = new BufferedReader(isr); 

      String line = null;

      StringBuilder sb = new StringBuilder(1024); 


      while ((line=br.readLine()) != null){ // 라인단위 읽기

         sb.append(line+"\n"); 

      }


      //out.println(sb.toString()); 

      out.print("<script> alert('" + sb.toString() + "'); </script>");

   }catch (IOException e) { 

      out.println(e.toString()); //에러 발생시 메시지 출력

   }

%>

웹 호스팅을 받다보면 트래픽을 줄이기 위해 외부에서 이미지를 업로드하고 그 url을 이용해

자신의 사이트에 올리는 경우가 있다.

이럴때 사용하기 좋은 무료 업로그 사이트들에 대한 포스트이다.


http://pgtyman.tistory.com/entry/%EB%AC%B4%EB%A3%8C-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%97%85%EB%A1%9C%EB%93%9C-%EC%82%AC%EC%9D%B4%ED%8A%B8-imgurcom


+ Recent posts